我的问题似乎很简单,但很难描述,请参阅下面的代码。让我们先创建一个数据帧:
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
希望我的描述足够清晰,并提前感谢您的任何想法或建议。
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[[3L]];
## [1] 8 10 12 10 14