> str(tester)
Classes ‘data.table’ and 'data.frame': 6402 obs. of 2419 variables:
$ h1 : int 1 5 6 12 13 16 19 22 26 28 ...
$ joinno : int 2 6 7 11 12 14 16 17 19 21 ..
$ h1 : int 1 5 6 12 13 16 19 22 26 28 ...
$ joinno : int 2 6 7 11 12 14 16 17 19 21 ...
有人可以告诉我如何/为什么将这两个对象与相同的列名相结合并不会导致问题?这些实际上恰好是相同的列,所以它有点没有实际意义,但当我对列名称进行子集时,我得到一个单独的值。那么R如何决定我指的是哪一列(大概是第一列)?是否有一种简单/固定的方式来重复删除R中的列?
先谢谢。
答案 0 :(得分:1)
@Frank是对的。 check.names=TRUE
的默认设置为?data.frame
,check.names=FALSE
的默认设置为?data.table
。虽然,在cbind
的情况下,它没有发挥作用:
cbind(data.frame(a=1),data.frame(a=2))
cbind(data.table(a=1),data.table(a=2))
......两者都有重复的名字。你可以申请:
names(out) <- make.unique(names(out))
... cbind
之后 - 修复它。另一种选择是不使用cbind
支持:
data.frame(data.frame(a=1),data.frame(a=2))
data.table(data.table(a=1),data.table(a=2),check.names=TRUE)