R apply()对字符类型的奇怪行为

时间:2019-09-24 15:11:07

标签: r apply

让我说我有一个带有数字列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], ...)

0 个答案:

没有答案