让我说我有一个带有数字列data
的数据框col
is_class <- function(x){
return(class(x['col']))
}
data['class'] <- apply(data, 1, is_class)
据我所知应该等同于:
data['class2'] <- class(data$col)
但是。
all(data['class'] == 'character')
是TRUE
all(data['class2'] == 'numeric')
是TRUE
看来apply()
将每一行转换为所有字符。这使得执行任何数字运算非常困难。
如下:
times_two <- function(x){
return(x['col']*2)
}
data['col2'] <- apply(data, 1, times_two)
Error in x["col"] * 2: non-numeric argument to binary operator
Traceback:
返回
1. apply(data, 1, times_two)
2. FUN(newX[, i], ...)