r - 选择 R 中数据框的最后 n 列

标签 r indexing dataframe

有没有办法系统地选择数据框的最后一列?我希望能够将最后一列移动到第一列,但在移动时保持列的顺序。我需要一种不使用子集(数据,选择= c(以新顺序列出的所有列))列出所有列的方法,因为我将使用许多不同的数据框。

这是一个示例,我想将最后 2 列移动到数据框的前面。它有效,但它很丑陋。

A = rep("A", 5)
B = rep("B", 5)
num1 = c(1:5)
num2 = c(36:40)

mydata2 = data.frame(num1, num2, A, B)

# Move A and B to the front of mydata2
mydata2_move = data.frame(A = mydata2$A, B = mydata2$B, mydata2[,1:    (ncol(mydata2)-2)])

#  A B num1 num2
#1 A B    1   36
#2 A B    2   37
#3 A B    3   38
#4 A B    4   39
#5 A B    5   40

更改原始数据框中的列数会导致问题。这有效(见下文),但命名被抛弃。为什么这两个例子表现不同?有没有更好的方法来做到这一点,并概括它?
mydata1_move = data.frame(A = mydata1$A, B = mydata1$B, mydata1[,1:   (ncol(mydata1)-2)])

#  A B mydata1...1..ncol.mydata1....2..
#1 A B                                1
#2 A B                                2
#3 A B                                3
#4 A B                                4
#5 A B                                5

最佳答案

描述的问题与标题不匹配,现有答案解决了移动列部分,并没有真正解释如何选择最后 N 列。

如果您只想在不知道列名的情况下选择矩阵/数据框中的最后 n 列:

mydata2[,ncol(mydata2)]

如果你想要最后 n 列,试试
mydata[,(ncol(mydata2)-n-1):ncol(mydata2)]

有点麻烦,但有效。如果您打算定期使用它,可以编写包装函数。

关于r - 选择 R 中数据框的最后 n 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28017141/

相关文章:

r - 使用haven导入Stata数据后访问变量标签的便捷方法

c++ - 在 mex 函数中索引和访问元胞数组和矩阵的元素

sql - 生成SQL Server数据库中所有索引、键的脚本

python - PostgreSQL: "index row requires 1460216 bytes, maximum size is 8191"

python - pandas:DTypeWarning,但我指定了 dtypes

r - 如何从变化的数据帧创建查找表?

r - 在 R 中绘制仅包含观察子集的树状图

r - 每日数据的运行总和在月份轮换时重置

python - Pandas fillna() 不适用于 DataFrame 切片

python - 在 pandas 数据框中,根据其他两列的结果生成第三列数据