【发布时间】:2020-01-26 01:47:54
【问题描述】:
我正在尝试将一个字符添加到数据帧的选择列(以“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"))
【问题讨论】:
-
列值。我偶然使用
rename对列名进行了处理