将dcast与multiple value.var一起使用时出错
因此,我一直在学习如何使用data.table,我使用了将dcast与multiple value.var一起使用时出错,r,casting,data.table,R,Casting,Data.table,因此,我一直在学习如何使用data.table,我使用了上的示例??dcast其中使用了以下示例 dt = data.table(x=sample(5,20,TRUE), y=sample(2,20,TRUE), z=sample(letters[1:2], 20,TRUE), d1 = runif(20), d2=1L) 然后 我得到了一个错误: .subset2(x,i,exact=exact)中的错误:中的下标超出边界 添加:警告消息:如果(!(val
上的示例??dcast
其中使用了以下示例
dt = data.table(x=sample(5,20,TRUE), y=sample(2,20,TRUE),
z=sample(letters[1:2], 20,TRUE), d1 = runif(20), d2=1L)
然后
我得到了一个错误:
.subset2(x,i,exact=exact)中的错误:中的下标超出边界
添加:警告消息:如果(!(value.var%In%names(data)){:条件的长度大于1,并且只使用第一个元素 以下是我的R版本的信息:
> version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 2.2
year 2015
month 08
day 14
svn rev 69053
language R
version.string R version 3.2.2 (2015-08-14)
nickname Fire Safety
我遇到了同样的事情,这是令人沮丧的 答案/问题是您需要“强制”data.table dcast函数,否则它将使用重塑2函数 我成功的唯一方法是按如下方式运行dcast:
# multiple value.var
data.table::dcast(dt, x + y ~ z, fun=sum, value.var=c("d1","d2"))
无法用
R3.2.3
和数据重现错误。R3.2.3上的表1.9.6
带有数据。表1.9.7,我看不到任何错误。仅供参考,在1.9.6中添加了多值.var功能:也可以通过只加载数据.table
库,或在重塑2
之前加载数据.table
来避免这一问题尤其令人恼火,因为只有在加载了重塑2
然后加载了数据.table
,这才是一个问题,这意味着它通常不是一个问题。这也是正确的。如果函数屏蔽了其他函数,包加载顺序可能会导致许多问题……可能会令人沮丧
# multiple value.var
data.table::dcast(dt, x + y ~ z, fun=sum, value.var=c("d1","d2"))