当我使用 apply 将数据框的一行传递给函数时,我丢失了该行元素的类信息。他们都变成了“性格”。下面是一个简单的例子。我想在 3 个臭名昭著的年龄上再增加几年。当我尝试添加 2 一个数值时,R 表示“二元运算符的非数值参数”。我该如何避免这种情况?
age = c(20, 30, 50)
who = c("Larry", "Curly", "Mo")
df = data.frame(who, age)
colnames(df) <- c( '_who_', '_age_')
dfunc <- function (er) {
print(er['_age_'])
print(er[2])
print(is.numeric(er[2]))
print(class(er[2]))
return (er[2] + 2)
}
a <- apply(df,1, dfunc)
输出如下:
_age_
"20"
_age_
"20"
[1] FALSE
[1] "character"
Error in er[2] + 2 : non-numeric argument to binary operator