【主要问题描述】
因为要对一批变量进行相同规则的重编码,所以使用了apply族命令:
- fun.mention <- function(x) {
- y <- recode(x, "'Mentioned' = 1;
- 'Not mentioned' = 0;
- else = NA")
- y <- as.numeric(y)
- }
- names(df)
- tolerance.temp <- base::sapply(df[, 20:28], fun.mention)
晚上睡觉前还可以成功运行,起床后对上文最后一行sapply运行报错:
- Error: Argument 2 must be named, not unnamed.
sapply的参数形式应该是:
- sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
我已经定义fun.mention,所以不明白为什么会说我sapply中的参数有unnamed问题。
【已经采取的补救措施】
这一报错我在使用recode时也遇到过。当时发觉应当是因为car和dplyr中都有recode,识别混淆了,所以指定car包,改为car::recode后就成功运行了。
但是这样改对sapply不起作用。
- > tolerance.temp <- base::sapply(df[, 1:9], fun.mention)
清空环境,重启R-studio也没用。
先谢谢各位大佬!