【发布时间】:2014-07-28 16:29:33
【问题描述】:
我有一个包含 2 个级别的 data.frame (df2):主题和时间以及 5 个变量。 因为我想将它与另一个具有完全相同结构相同 id、相同年份的数据帧(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 和 time
【问题讨论】:
-
df2[,-c(1,2)]删除前两列。您是否正在寻找droplevels?举个例子,你的问题会更清楚。 -
我只想删除其中包含因子变量的两列。例如,Library(plm) data(grunfeld) 看起来与我的数据相似
-
“看起来与我的数据相似”与提供重现您试图描述的问题的最小示例并不完全相同。此外,您的问题文本需要编辑。
-
我真的很困惑为什么 data[,-c(1,2)] 不起作用。这是某种安全功能还是我没有看到任何其他原因导致它不起作用
-
如果您有一个小的
data.frame(使用dput向我们展示)以及结果应该是什么样子,您将更容易获得答案。你使用的是data.table,所以你必须使用df2[, -c(1,2), with=FALSE]
标签: r data.table