我的问题似乎很容易,但很难描述,请参阅下面的代码。让我们先创建一个数据框:
Length<-c(10,11,9,8,10)
Width<-c(5,5.4,4.7,5.6,6.1)
Layer<-c(8,10,12,10,14)
data<-data.frame(Length, Width, Layer)
data
Length Width Layer
1 10 5.0 8
2 11 5.4 10
3 9 4.7 12
4 8 5.6 10
5 10 6.1 14
众所周知,如果我们想要从给定的数据框中指出变量,我们需要输入如下:
data$Layer
[1] 8 10 12 10 14
然而,当有很多变量时,它变得耗时,所以我想找到其他方法:
var_list<-c("Length", "Width", "Layer")
var_list
[1] "Length" "Width" "Layer"
> var_list[1]
[1] "Length"
> var_list[2]
[1] "Width"
> var_list[3]
[1] "Layer"
因此创建了一个变量列表,我想使用它来指示数据集但是徒劳无功:
> data$var_list
NULL
> data$var_list[1]
NULL
> data$var_list[2]
NULL
> data$var_list[3]
NULL
希望我的描述足够清晰,并提前感谢任何想法或建议。
答案 0 :(得分:2)
1:您可以通过names()
函数获取列的名称:
names(data);
## [1] "Length" "Width" "Layer"
2:您可以使用`[[`()
操作提取单个列:
data[['Layer']];
## [1] 8 10 12 10 14
data[[names(data)[3L]]];
## [1] 8 10 12 10 14
3:但是既然你最终在名字向量中使用数字索引,我建议你只在原始data.frame上使用数字索引:
data[[3L]];
## [1] 8 10 12 10 14