有没有办法将数据框的列名作为变量引用,而不是字符串(在 R 中)?假设我想获取数据框 df 的第一列名称。代码 colnames 返回...
> colnames(df)[[1]]
[1] "colname1"
我问的原因是我很难将函数子集推广到任何数据帧。假设我希望在具有已知条件的数据帧上做一个条件子集,但我不知道运行时的列名(只是列号)。例子 -
> df<-data.frame( x=c(1:3), y=c(4:6))
> df.sub <- subset(df, df$y >5 )
但是可以说我在运行时不知道 df 的列名,只知道它的列号 2。函数调用
> df.sub <- subset(df, colnames(df)[[2]] >5 )
不起作用,因为 colnames 返回一个字符串,并且子集是“智能”并在 df 内部查找对象名称。有没有解决这个问题的好方法?我可以改用 [ ,但我觉得问题是一样的。