r - 按另一个向量中的值排列数据框的行
问题描述
作为序言,我已经阅读了一些帖子,它们通过另一个向量中的值对数据帧的行进行排序,但这并不是我所追求的。我的数据包含患者 ID 和该行中该患者的数据:
ID Group L_HCH R_HCH L_HCB R_HCB L_HCT R_HCT L_HC_Total R_HC_Total
121 GP_M01 PAT 0.120000 0.110000 0.040000 0.040000 0.040000 0.040000 0.200000 0.190000
122 GP_M02 PAT 0.110000 0.120000 0.060000 0.060000 0.020000 0.010000 0.190000 0.190000
123 GP_M03 PAT 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
124 GP_M05 PAT 0.117340 0.125620 0.050664 0.045523 0.020289 0.012440 0.188293 0.183583
125 GP_M08 PAT 0.114000 0.119000 0.049000 0.065000 0.027000 0.011000 0.190000 0.195000
126 GSTTC_01 PAT 0.151000 0.140000 0.049000 0.058000 0.042000 0.033000 0.242000 0.231000
127 GSTTC_11 PAT 0.130000 0.130000 0.080000 0.070000 0.030000 0.040000 0.240000 0.240000
等等。有些行在错误的位置。我有另一个以已知良好顺序列出的仅ID 列表:
> PT_IDs
[1] "CON_L01" "CON_L03" "CON_L04" "CON_L05" "CON_L07" "CON_L10" "CON_L14" "CON_L16" "CON_L17" "CON_L18"
[11] "CON_L19" "CON_L23" "CON_L25" "CON_L26" "CON_L27" "CON_L29" "CON_L30" "CON_L31" "CON_L35" "CON_L36"
等等
我想,我可以将主数据帧写入 a csv
,手动重新排列行,然后将其读回,但我想知道最好的方法是按列重新排列数据帧的行,ID
以便它们与列表中的等效 ID 的顺序相同PT_IDs
。PT_IDs
列表中的所有值也都在ID
列中,所以那里没有有趣的事情。
感谢您的任何帮助!
解决方案
在对文档进行了更彻底的搜索之后R
,我发现了这个match()
函数,它似乎具有我想要的功能([match][1])——对于遇到这个问题的任何其他人,解决方案归结为:
df_arranged <- patient_df[match(PT_IDs, patient_df$ID), ]
Match 只返回给定元素的位置,以便用于索引正确的行。希望我不只是添加一堆重复的问题![1]:https ://www.rdocumentation.org/packages/base/versions/3.6.2/topics/match
推荐阅读
- ruby - 多个链式查找器导致选择根节点
- node.js - AWS serverless-image-handler v3.x 因 AWS Lambda 执行环境的更改而中断
- xml - 在oracle中从xml中提取值时如何将列表的每个项目作为一行?
- jquery - 如何使用 jQuery 删除类“selectpicker”的“禁用”属性
- javascript - 反应原生动画延迟不尊重给定值
- node.js - 如何停止与此特定父 node.js 服务器相关的所有子 chromium 实例?
- excel - double 之间除法的 vba 类型不匹配
- python - 根据列将一个数据框映射到另一个数据框
- python - 如何从纬度/经度数据到曲面图
- java - 在 UI 端处理 ResponseEntity 的最佳方法是什么?