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/8/sorting/2.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_Sorting - Fatal编程技术网

R 如何按一行对整个数据帧进行排序';内容

R 如何按一行对整个数据帧进行排序';内容,r,sorting,R,Sorting,我有一个数据框,如下所示: Col1 Col2 Col3 Col4 Col5 1794.7809 336.5778 0.2233495 0.53030000 5594.83998270378 28.7967 16.0021 2.6449000 81.8828 g 31.6036 11.7235 2.5185000 0.53030000 g 162.0520 136.0

我有一个数据框,如下所示:

   Col1       Col2      Col3        Col4       Col5

 1794.7809  336.5778  0.2233495   0.53030000  5594.83998270378
  28.7967   16.0021   2.6449000    81.8828        g
  31.6036   11.7235   2.5185000   0.53030000      g
 162.0520  136.0310   4.0612000   0.03740000      g
 23.8172   9.5728     2.3385000   0.61470000      g
   Col3       Col4                 Col2      Col1            Col5

 0.2233495    0.53030000        336.5778   1794.7809     5594.83998270378
  2.6449000   81.8828          16.0021     28.7967           g
  2.5185000   0.53030000        11.7235   31.6036          g
 4.0612000    0.03740000        136.0310    162.0520        g
 2.3385000     0.61470000        9.5728    23.8172          g
我希望根据第一行中的值(即:1794.7809 336.5778 0.2233495 0.53030000 5594.83998270378)对整个数据帧进行排序,这样不仅可以对这一行进行排序,而且与这些值对应的所有行也可以正确排列。任何帮助都将不胜感激

编辑: 输出应如下所示:

   Col1       Col2      Col3        Col4       Col5

 1794.7809  336.5778  0.2233495   0.53030000  5594.83998270378
  28.7967   16.0021   2.6449000    81.8828        g
  31.6036   11.7235   2.5185000   0.53030000      g
 162.0520  136.0310   4.0612000   0.03740000      g
 23.8172   9.5728     2.3385000   0.61470000      g
   Col3       Col4                 Col2      Col1            Col5

 0.2233495    0.53030000        336.5778   1794.7809     5594.83998270378
  2.6449000   81.8828          16.0021     28.7967           g
  2.5185000   0.53030000        11.7235   31.6036          g
 4.0612000    0.03740000        136.0310    162.0520        g
 2.3385000     0.61470000        9.5728    23.8172          g
(注:在谷歌上搜索这个问题是没有结果的) (注:任务的一部分)
关于

假设原始数据框中没有因子变量,可以在第一行使用order,这

返回将其第一个参数重新排列为 升序还是降序

并将结果应用于数据帧:

df[order(as.numeric(unlist(df[1,])))]

#        Col3    Col4     Col2      Col1             Col5
# 1 0.2233495  0.5303 336.5778 1794.7809 5594.83998270378
# 2 2.6449000 81.8828  16.0021   28.7967                g
# 3 2.5185000  0.5303  11.7235   31.6036                g
# 4 4.0612000  0.0374 136.0310  162.0520                g
# 5 2.3385000  0.6147   9.5728   23.8172                g
使用
dplyr
中的
mutate\u
函数,将因子变量转换为字符应该相当直接:

df %>% mutate_if(is.factor, as.character)

@StevenBeaupré不,它不起作用。你唯一缺少的是逻辑。为什么要根据行对数据帧进行排序?这样做有什么好处?你看过Hadley Wickham的这篇文章了吗?你需要理解为什么数据框是用列和行来正确定义的,有一个定义变量和观察值的语法。从您想要的排序类型来看,您完全忽略了语法。这有什么用?@Pj_u我明白你的意思,但就像我说的,这是数据挖掘任务的一部分。因此,目前我正在尝试选择第一行中最大值的列,将其添加到新的dataframe中,以此类推..谢谢。工作得很有魅力。“我不明白为什么这个问题被否决了。”悉达多·夏尔马可能是因为很多人误解了你最初的提问。如果“我正在尝试选择第一行中具有最大值的列,将其添加到新的数据框中,依此类推。”在主体中出现,对许多人来说会更清楚。@Pj_u好的。我将努力改进我未来的问题。谢谢你的建议。:)