我有一个大的数据集,我想读取特定的列或删除所有其他列
数据<;-read.dta(“file.dta”)
我选择了我不感兴趣的列:
var.out<;-名称(数据)[!名称(数据)%in%c(“iden”、“name”、“x_serv”、“m_serv”)]
然后我想做一些事情,比如:
用于(i输入1:长度(变量输出)){
粘贴(“数据$”,var.out[i],sep=”“)<;空
}
删除所有不需要的列。这是最佳解决方案吗
您应该使用索引或子集
功能。例如:
R>;df<;-数据帧(x=1:5,y=2:6,z=3:7,u=4:8)
R>;df
x y z u
1 1 2 3 4
2 2 3 4 5
3 3 4 5 6
4 4 5 6 7
5 5 6 7 8
然后可以在列索引中使用which
函数和-
运算符:
R>;df[,-其中(在%c(“z”,“u”)中命名(df)%1)]
xy
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
或者,更简单的是,使用subset
函数的select
参数:然后可以直接在列名向量上使用-
运算符,甚至可以省略名称周围的引号
R>;子集(df,select=-c(z,u))
xy
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
请注意,您还可以选择所需的列,而不是删除其他列:
R>;df[,c(“x”,“y”)]
xy
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
R>;子集(df,select=c(x,y))
xy
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6