【发布时间】:2019-01-20 15:48:10
【问题描述】:
我正在尝试按 ID 和性别折叠数据。 我有数据框:
ID <- c(1,1,1,1,2,2,2,3,3,3,4,4,4)
Gender <- c("M","M","M","M","F","F",'F',"F","F","F", "M", "M", "M")
Test1 <- c("70", "NA", "NA", "NA", "NA", "85", "NA", "NA", "90", "NA", "NA", "NA", "90")
Test2 <- c("NA", "60", "NA", "NA", "NA", "NA", "82", "NA", "NA", "87", "NA", "88", "NA")
df <- data.frame(ID, Gender, Test1, Test2)
ID Gender Test1 Test2
1 1 M 70 NA
2 1 M NA 60
3 1 M NA NA
4 1 M NA NA
5 2 F NA NA
6 2 F 85 NA
7 2 F NA 82
8 3 F NA NA
9 3 F 90 NA
10 3 F NA 87
11 4 M NA NA
12 4 M NA 88
13 4 M 90 NA
我希望获得有关如何跨 ID 和 Gender 折叠数据的帮助,以便每个 ID 可以有 1 行。看起来像这样:
id gender test1 test2
1 1 M 70 60
2 2 F 85 82
3 3 F 90 87
4 4 M 90 88
任何帮助将不胜感激! 谢谢!
【问题讨论】:
-
如果一个 ID 有超过 1 个非 NA 值,你想做什么?你都尝试了些什么?您是否想做类似
df %>% group_by(ID) %>% mutate_if(is.factor, as.character) %>% summarise_all(min)的事情 -
这是我到目前为止所尝试的:df_new