我有一个数据集,其中包含五个变量:ID,A,B,C,D。某些ID重复不止一个,因此它使我的数据集比原本应的大(n = 3600)。现在,我有类似(表1)的内容,并且我想看到(表2)的内容:
因此,基本上,将变量A,B,C的答案通过其ID组合为一个,并且每个ID仅排成一行(就像ID2一样)。
此外,对于变量D,我希望有一个逻辑响应,就像ID2一样。一旦ID2的变量(A,B,C)组合在一起,如果这些变量中的任何一个对变量D都有“参加”响应,那么对于ID,总的来说,它应该是“参加”。
我很抱歉,我的问题太简单了,我尝试从其他人的问题中查找,并用谷歌搜索,但是大多数答复是将两个数据集通过其ID合并为一个。我希望得到您的想法,并在此先感谢您!任何帮助/想法表示赞赏!
您, G
答案 0 :(得分:0)
您没有提供可供使用的示例,因此:
> Table1
## A tibble: 5 x 5
# ID A B C D
# <int> <chr> <chr> <chr> <chr>
#1 1 yes <NA> yes Not Attended
#2 2 yes <NA> <NA> Not Attended
#3 2 <NA> yes <NA> Not Attended
#4 2 <NA> <NA> yes Not Attended
#5 3 yes <NA> <NA> Not Attended
您可以使用tidyverse:
Table1 %>% gather(k,v,-ID) %>% filter(!is.na(v)) %>% distinct %>% spread(k,v)
并获得:
## A tibble: 3 x 5
# ID A B C D
# <int> <chr> <chr> <chr> <chr>
#1 1 yes <NA> yes Not Attended
#2 2 yes yes yes Not Attended
#3 3 yes <NA> <NA> Not Attended