使用data.table set()将所有列从整数转换为数字

时间:2015-04-22 07:08:54

标签: r data.table

我正在使用一个包含1900列和大约280,000行的data.table。

目前,数据完全是"整数",但我希望它们明确地"数字"所以我可以稍后将它传递给bigcor()函数。显然,bigcor()只能处理"数字"而不是"整数"。

我试过了:

full.bind <- full.bind[,sapply(full.bind, as.numeric), with=FALSE]

不幸的是,我收到错误:

Error in `[.data.table`(full.bind, , sapply(full.bind, as.numeric), with = FALSE) : 
  j out of bounds

所以,我尝试使用data.table set()函数,但是我得到了错误:

Error in set(full.bind, value = as.numeric(full.bind)) : 
  (list) object cannot be coerced to type 'double'

我创建了一个简单的可重现的例子。请注意,实际列不是&#34; a&#34;,&#34; b&#34;或&#34; c&#34 ;;它们是非常复杂的列名,因此不可能单独引用列。

dt <- data.table(a=1:10, b=1:10, c=1:10)

所以,我最后的问题是:

1)为什么我的sapply技术不起作用? (什么是&#34; j超出界限&#34;错误?) 2)为什么set()技术不是? (为什么data.table可以被强制转换为数字?) 3)bigcor()函数是否需要数字对象,还是存在其他问题?

0 个答案:

没有答案