为了账号安全,请及时绑定邮箱和手机立即绑定

一个数据帧中的列如何重新排序?

一个数据帧中的列如何重新排序?

慕的地6264312 2019-10-05 11:19:06
如何更改此输入(顺序:时间,输入,输出,文件):Time   In    Out  Files1      2     3    42      3     4    5对于此输出(顺序为:时间,输出,输入,文件)?Time   Out   In  Files1      3     2    42      4     3    5这是虚拟R数据:table <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5))table##  Time In Out Files##1    1  2   3     4##2    2  3   4     5
查看完整描述

4 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

您的数据框具有四列,如下所示df[,c(1,2,3,4)]。请注意,第一个逗号表示保留所有行,而1,2,3,4则指向列。


像上面的问题一样更改顺序 df2[,c(1,3,2,4)]


如果要将此文件输出为csv,请执行 write.csv(df2, file="somedf.csv")


查看完整回答
反对 回复 2019-10-05
?
莫回无

TA贡献1865条经验 获得超7个赞

# reorder by column name

data <- data[c("A", "B", "C")]


#reorder by column index

data <- data[c(1,3,2)]


查看完整回答
反对 回复 2019-10-05
?
慕仙森

TA贡献1827条经验 获得超7个赞

您还可以使用子集功能:


data <- subset(data, select=c(3,2,1))

您最好像在其他答案中一样使用[]运算符,但是了解您可以在单个命令中执行子集和列重新排序操作可能会很有用。


更新:


您还可以使用dplyr软件包中的select函数:


data = data %>% select(Time, out, In, Files)

我不确定效率,但是由于dplyr的语法,这种解决方案应该更加灵活,特别是在您有很多专栏的情况下。例如,以下内容将以相反的顺序重新排列mtcars数据集的列:


mtcars %>% select(carb:mpg)

并且以下内容将仅对某些列重新排序,并丢弃其他列:


mtcars %>% select(mpg:disp, hp, wt, gear:qsec, starts_with('carb'))


查看完整回答
反对 回复 2019-10-05
  • 4 回答
  • 0 关注
  • 737 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信