【发布时间】:2016-05-11 19:01:37
【问题描述】:
让我有一个数据框,其中一些列是因子类型,并且有一个名为“索引”的列,它不是一列。我要提取列
- 是因子类型和
- “索引”列。
例如让
df<-data.frame(a=runif(10),b=as.factor(sample(10)),index=as.numeri(1:10))
所以 df 是:
a b index
0.16187501 5 1
0.75214741 8 2
0.08741729 3 3
0.58871514 2 4
0.18464752 9 5
0.98392420 1 6
0.73771960 10 7
0.97141474 6 8
0.15768011 7 9
0.10171931 4 10
期望的输出是(让它成为一个名为df1的数据框)
df1:
b index
5 1
8 2
3 3
2 4
9 5
1 6
10 7
6 8
7 9
4 10
其中包括因子列和名为“索引”的列。
我用这样的代码
vars<-apply(df,2,function(x) {(is.factor(x)) || (names(x)=="index")})
df1<-df[,vars]
但是,此代码不起作用。如何使用 R 中的应用类型函数返回 df1?我会很高兴得到任何帮助。非常感谢。
【问题讨论】: