swe*_*ity 1 variables r unique collapse dataframe
我对R比较陌生,不知道如何用短语来表达我的问题.基本上,我有一个test看起来像这样的数据框:
PMID PL subject
1 Canada neurology
2 USA cancer
5 Canada dermatology
2 USA respiratory
4 Japan neurology
2 USA cancer
5 Canada cardiovascular
Run Code Online (Sandbox Code Playgroud)
我要转换成
PMID PL subject
1 Canada neurology
2 USA cancer, respiratory
5 Canada dermatology, cardiovascular
4 Japan neurology
Run Code Online (Sandbox Code Playgroud)
实质上,每个PMID可以与多个主题相关联,因此我希望保留该信息.我只想要唯一的PMID行.我也想删除重复次数(例如,有3行"2"但其中2行是"癌症".另外,我还有其他变量,每个PMID对于其他每个都有相同的值变量(主题除外).
请指教.
谢谢!
尝试使用 dplyr
dat%>%group_by(PMID)%>%dplyr::summarise(subject=toString(unique(subject)))
# A tibble: 4 x 2
PMID subject
<int> <chr>
1 1 neurology
2 2 cancer, respiratory
3 4 neurology
4 5 dermatology, cardiovascular
Run Code Online (Sandbox Code Playgroud)
第二种方法
dat1=dat[!duplicated((dat)),]
aggregate(dat1$subject, list(dat1$PMID), paste, collapse=",")
Run Code Online (Sandbox Code Playgroud)
EDIT1:根据您的更新data.frame,您应该使用mutate
dat%>%group_by(PMID)%>%dplyr::mutate(subject=toString(unique(subject)))%>% distinct(PMID, .keep_all = TRUE)
# Groups: PMID [4]
PMID PL subject
<int> <chr> <chr>
1 1 Canada neurology
2 2 USA cancer, respiratory
3 5 Canada dermatology, cardiovascular
4 4 Japan neurology
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |