1

我把它缩小到一个非常小的例子,所以我确信这是非常愚蠢的。

我有test.delete这些内容的文件:

Rock,bird
1350909372121900000,55.20000
1350909372318100000,55.30000
1350909382020900000,55.20000
1350909382029600000,55.20000
1350909384311100000,55.20000

然后我做:

test = read.csv('test.delete', colClasses=c('character','numeric'))

但所有列似乎都被读作字符:

> apply(test, 2, class)
       Rock        bird
"character" "character"

为什么是这样?

4

1 回答 1

4

read.csv正在按您的意愿工作。你在apply这里误用了。

如果您str在导入的数据上运行,您应该会看到另一个变量是数字的。但是当你调用 时apply,数据框会被强制转换为一个矩阵,它只处理一种数据类型,并且所有内容都被强制转换为字符。

检查列类的更安全方法是使用lapply,因为 data.frame 实际上是一个列表。

于 2012-10-29T22:59:12.697 回答