R 将文件排序为与另一个文件具有相同的列顺序
我有两个文件R 将文件排序为与另一个文件具有相同的列顺序,r,R,我有两个文件s和df.iso,它们共享相同的列名。我想对s文件进行排序,以便列的顺序与df.iso文件的顺序相同。下面显示的两个文件的一部分(列比显示的要多) 如果两个data.frames(不是文件)具有相同的列,则可以 xy1 <- data.frame(a = 1:3, b = runif(3), c = rnorm(3)) xy2 <- data.frame(c = rnorm(3), a = 1:3, b = runif(3)) xy2 c a
s
和df.iso
,它们共享相同的列名。我想对s
文件进行排序,以便列的顺序与df.iso
文件的顺序相同。下面显示的两个文件的一部分(列比显示的要多)
如果两个data.frames(不是文件)具有相同的列,则可以
xy1 <- data.frame(a = 1:3, b = runif(3), c = rnorm(3))
xy2 <- data.frame(c = rnorm(3), a = 1:3, b = runif(3))
xy2
c a b
1 -0.7573781 1 0.9564583
2 0.3513074 2 0.9837766
3 1.6455091 3 0.9433857
xy2[, names(xy1)]
a b c
1 1 0.9564583 -0.7573781
2 2 0.9837766 0.3513074
3 3 0.9433857 1.6455091
xy1我假设您从已经从文件读入R的数据帧开始。如果它们的列名完全相同,一种简单的方法是按列名重新排序:
s = s[ , order(colnames(s))]
df.iso = df.iso[ , order(colnames(df.iso))]
然后,您可以将这些内容写入文件。对列名进行排序可以使数据帧更容易比较,而且还有一个额外的好处,就是可以更容易地在数据帧或文件中找到任何给定的列名
s = s[ , order(colnames(s))]
df.iso = df.iso[ , order(colnames(df.iso))]