r通过ID [duplicate]重新排列行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r通过ID [duplicate]重新排列行相关的知识,希望对你有一定的参考价值。
假设这是我的数据集
Id Name Score Fear Satisfaction
1 A 10 NA NA
1 B 11 NA NA
1 A NA 23.2 NA
1 B NA 34.1 NA
1 A NA NA 42.11
1 B NA NA 31.19
我如何清理此数据集,以使所有行都像下面这样正确对齐,并且下面没有太多不必要的NA呢
Id Name Score Fear Satisfaction
1 A 10 23.2 42.11
1 B 11 34.1 31.19
抱歉,我无法更准确地解释这一点,但我认为该示例应该有所帮助。提前致谢。
答案
假设示例中每组和每列具有相等数量的非NA值,我们可以group_by
Id
和Name
并删除NA
值
library(dplyr)
df %>% group_by(Id, Name) %>% summarise_all(na.omit)
# Id Name Score Fear Satisfaction
# <int> <fct> <int> <dbl> <dbl>
#1 1 A 10 23.2 42.1
#2 1 B 11 34.1 31.2
另一答案
如果您的列数有限,那么我认为这是最好的方法:
SELECT *
FROM <table_name>
WHERE
Score IS NOT NULL
AND Fear IS NOT NULL
AND Satisfaction IS NOT NULL
以上是关于r通过ID [duplicate]重新排列行的主要内容,如果未能解决你的问题,请参考以下文章