指示给定数据帧中的变量的另一种方式



我的问题似乎很简单,但很难描述,请参阅下面的代码。让我们先创建一个数据帧:

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

最新更新