gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:46:40 25 4
gpt4 key购买 nike

有没有办法系统地选择数据框的最后一列?我希望能够将最后一列移动到第一列,但在移动时保持列的顺序。我需要一种不使用子集(数据,选择= 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com