请参阅R中的最后一栏

the*_*ech 23 r

我试图以通用方式对最后一列进行一些操作.

我在论坛上找到了这段很好的代码,它返回了最后一列的名称:

tail(names(train),1) #returns [1] "last"
Run Code Online (Sandbox Code Playgroud)

我仍然无法弄清楚如何直接引用我的数据集的最后一列:

data$last

Tro*_*roy 56

只是ncol()用来获取最后一个col的索引

data[,ncol(data)]
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不适用于数据表,仅适用于数据框。我是不是错过了什么,为什么会这样?我正在运行 R 3.6.2 和数据表 1.12.8。 (2认同)

Jam*_*mes 12

获取rev列名的ersed向量的第一个元素:

rev(names(mtcars))[1]
[1] "carb"
Run Code Online (Sandbox Code Playgroud)

同样,要获取最后一列,您可以使用

rev(mtcars)[1]
Run Code Online (Sandbox Code Playgroud)


cia*_*ius 5

参考最后一栏:

colnames(data)[ncol(data)]
Run Code Online (Sandbox Code Playgroud)


zx8*_*754 5

我更喜欢@Troy的解决方案,这是另一种方式:

train[, tail(colnames(train), 1)]
Run Code Online (Sandbox Code Playgroud)


BML*_*pes 5

特洛伊的回答更简单,可以使用“:”运算符修改为引用最后一列之前的“n”个元素。

如果你想参考最后三列,你可以写:

data[,ncol(data)] # refers to the last column
data[,(ncol(data)-2):ncol(data)] # refers to the three last columns
Run Code Online (Sandbox Code Playgroud)