我试图以通用方式对最后一列进行一些操作。
我在论坛上发现了这段很棒的代码,它返回了最后一列的名称:
tail(names(train),1) #returns [1] "last"
我仍然无法弄清楚如何直接引用我的数据集的最后一列:
data$last
答案 0 :(得分:54)
只需使用ncol()
获取最后一个col的索引
data[,ncol(data)]
答案 1 :(得分:12)
获取rev
列名称向量的第一个元素:
rev(names(mtcars))[1]
[1] "carb"
同样,要获取最后一列,您可以使用
rev(mtcars)[1]
答案 2 :(得分:5)
我更喜欢@ Troy的解决方案,这是另一种方式:
train[, tail(colnames(train), 1)]
答案 3 :(得分:3)
参考最后一栏:
colnames(data)[ncol(data)]
答案 4 :(得分:3)
Troy's answer比较简单,可以使用“:”运算符来引用最后一列之前的“ n”个元素。
如果您想参考最后的三栏,可以写:
data[,ncol(data)] # refers to the last column
data[,(ncol(data)-2):ncol(data)] # refers to the three last columns
答案 5 :(得分:3)
last_col()
软件包中的功能tidyselect
可能会有所帮助。另请参见此处
答案 6 :(得分:2)
您可以使用tail
,但必须强制列出:
tail(as.list(mtcars), 1)
这将返回包含列内容的向量。如果要保留结构,可以使用:
utils:::tail.default(mtcars, 1)
以便tail
像输入列表一样处理输入。真正使用这种方法而不是Troy的唯一原因是,如果你想要的不仅仅是最后一列(即最后一个N),那么以这种方式变得容易得多。