Я пытаюсь добавить символ в начало выбранных столбцов (те, которые заканчиваются на "c") кадра данных, которые являются числовыми, а не пустыми / NA.Я подхожу к этому, используя mutate_at
, чтобы выбрать определенные столбцы и paste0
, чтобы добавить символ в начало строки, но я сталкиваюсь с проблемами, так как он будет в качестве символа для каждой ячейки, даже если ее пустое / NA:
appendCoeff <- function(x) {ifelse(is.numeric(x), paste0("a", x) , x)}
#appendCoeff <- function(x) paste0("a", x)
df2 <- df2 %>% mutate_at(vars(ends_with("c")), appendCoeff)
Мой вопрос: нужно ли включать lapply
с is.numeric
в качестве альтернативы?Данные ниже для первых 15 строк:
> dput(head(df2,10))
structure(list(Reaction = c("k1", "k2", "k3", "k2", "k3", "k4",
"k5", "k6", "k7", "k8"), R1c = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1
), R1 = c("HOCl", "OCl-", "NH2Cl", "NHCl2", "H2O2", "HO2-", "NH2Cl",
"NH2Cl", "NH2Cl", "NHCl2"), R2c = c("", "", "", "", "", "", "1",
"1", "1", "1"), R2 = c("", "", "", "", "", "", "$OH", "$Cl",
"$Cl2-", "$OH"), R3c = c("", "", "", "", "", "", "", "", "",
""), R3 = c("", "", "", "", "", "", "", "", "", ""), P1c = c("1",
"1", "1", "1", "2", "1", "1", "1", "1", "1"), P1 = c("$OH", "O$-",
"$NH2", "$NHCl", "$OH", "$OH", "$NHCl", "$NHCl", "$NHCl", "NCl2$"
), P2c = c("1", "1", "1", "1", "", "1", "1", "1", "2", "1"),
P2 = c("$Cl", "$Cl", "$Cl", "$Cl", "", "O$-", "OH-", "Cl-",
"Cl-", "H2O"), P3c = c("", "", "", "", "", "", "", "", "1",
""), P3 = c("", "", "", "", "", "", "", "", "H+", "")), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))