![](/img/trans.png)
[英]Is there a generic way to refer to the last column of an R data frame in a formula object?
[英]Refer to the last column in R
我正在尝试以通用方式对最后一列进行一些操作。
我在论坛上找到了这段不错的代码,它返回最后一列的名称:
tail(names(train),1) #returns [1] "last"
我仍然不知道如何直接引用我的数据集的最后一列:
data$last
只需使用ncol()
获取最后一个 col 的索引
data[,ncol(data)]
采取的第一个元素rev
列名的ersed向量:
rev(names(mtcars))[1]
[1] "carb"
同样,要获取最后一列,您可以使用
rev(mtcars)[1]
参考最后一栏:
colnames(data)[ncol(data)]
我更喜欢@Troy 的解决方案,这是另一种方式:
train[, tail(colnames(train), 1)]
Troy 的答案更简单,可以使用“:”运算符修改为引用最后一列之前的“n”个元素。
如果你想参考最后三列,你可以写:
data[,ncol(data)] # refers to the last column
data[,(ncol(data)-2):ncol(data)] # refers to the three last columns
tidyselect
包中的last_col()
函数可能会有所帮助。 另请参阅此处的答案
您可以使用tail
,但您必须强制列出:
tail(as.list(mtcars), 1)
这将返回一个包含列内容的向量。 如果要保留结构,可以使用:
utils:::tail.default(mtcars, 1)
所以tail
将输入视为列表。 真正在 Troy 上使用这种方法的唯一原因是,如果您想要的不仅仅是最后一列(即最后 N 列),那么以这种方式进行操作会变得容易得多。
下面是仅索引最后一列名称的示例。 引用names(df1[,ncol(df1)])
:
df1 <- df1 %>%
add_column(new1 = NA, new2 = NA, new3 = NA, .after = names(df1[,ncol(df1)]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.