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好的。我将努力改进我未来的问题。谢谢你的建议。:)