Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将文件排序为与另一个文件具有相同的列顺序_R - Fatal编程技术网

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))]