我有一个带有2个级别的data.frame(df2):主题和时间以及5个变量。 因为我想将它与另一个具有完全相同结构的数据帧(df1)合并,相同的年份(但在原始数据帧中,id和时间是整数)
通常你只需用
删除前两行a<-df2[,-c(1,2)]
df1<-cbind(df1,a)
但因为它们是因子级别R不知何故不允许我删除它们。我试图将它们设置为a.numeric,但那也没有用。我错过了什么?
这是我的df2的结构:
> str(data)
Classes ‘data.table’ and 'data.frame': 2262 obs. of 9 variables:
$ id : Factor w/ 87 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
$ time : Factor w/ 26 levels "1987","1988",..: 1 2 3 4 5 6 7 8 9 10 ...
$ shares : num NA 0.016 0.016 0.016 0.016 0.016 0.016 0.16 0.16 0.159 ...
$ tacc : num NA 38.7 31 50.5 28.7 ...
我想删除整个列ID和时间
答案 0 :(得分:3)
问题似乎是您实际上尝试在data.frame
上使用data.table
语法。
以下是一个例子:
library(data.table)
DT <- data.table(id = 1:2, time = 3:4, shares = 5:6, tacc = 7:8)
DT[, -c(1, 2)]
# [1] -1 -2
DT[, -c(1, 2), with = FALSE]
# shares tacc
# 1: 5 7
# 2: 6 8
DF <- as.data.frame(DT)
DF[, -c(1, 2)]
# shares tacc
# 1 5 7
# 2 6 8
请注意,使用这样的索引位置并非最佳做法,只是因为从长远来看,这会使代码更加模糊。