在R中使用括号设置数据帧--x中的错误:一元运算符的参数无效



我正在尝试使除";非数字";以及";singlecomcols";。

notnumeric <- c(40, 42:47, 61:62)
df[,-notnumeric] <- sapply(df[,-notnumeric], as.numeric)
singlecombcols <- c("singlecomb_1", "singlecomb_2", "singlecomb_3", "singlecomb_4")
df[,-singlecombcols] <- sapply(df[,-singlecombcols], as.numeric)

在过去,我已经成功地使用了这种类型的代码。然而,我现在收到以下错误消息:

Error in -notnumeric : invalid argument to unary operator
Error in -singlecombcols : invalid argument to unary operator

当我删除"-"在变量名之前,我可以运行它。R中有什么变化,不再允许我使用"-"指定要将函数应用于除给定对象指定的列之外的所有列?

第二部分是一个问题,即数字索引可以有-,但对于列名,我们需要setdiff

nm1 <- setdiff(names(df), singlecombcols)
df[nm1] <- lapply(df[nm1], as.numeric)

%in%!

i1 <- !names(df) %in% singlecombcols
df[i1] <- lapply(df[i1], as.numeric)

最新更新