我有一个看起来像这样的数据(但实际上更大,大约100000行)。
ID CODE
1 A F1
2 A F2
3 B F3
4 B F1
5 C F1
6 C F1
7 C F2
我需要将每个ID的所有不同代码写入一列。我已经做到了一半:
Data %>% arrange(ID) %>% group_by(ID) %>% distinct(CODE)
CODE ID
<fct> <fct>
1 F1 A
2 F2 A
3 F3 B
4 F1 B
5 F1 C
6 F2 C
但是我需要的看起来应该是这样的(其中all_CODEs列包含每个写入字符串的ID的所有代码):
ID all_CODEs
1 A F1 F2
2 B F3 F1
3 C F1 F2
有人可以帮忙吗?
在后distinct
一步,我们可以summarise
通过paste
荷兰国际集团的“CODE”成一个字符串
library(dplyr)
library(stringr)
Data %>%
arrange(ID) %>%
distinct() %>%
group_by(ID) %>%
summarise(all_CODEs = str_c(CODE, collapse=' '))
# A tibble: 3 x 2
# ID all_CODEs
# <chr> <chr>
#1 A F1 F2
#2 B F3 F1
#3 C F1 F2
注意:distinct
在具有的单列上,仅返回具有不同行的该列,因为默认情况下.keep_all = FALSE
。在这里,似乎distinct
应该应用于两列
Data <- structure(list(ID = c("A", "A", "B", "B", "C", "C", "C"), CODE = c("F1",
"F2", "F3", "F1", "F1", "F1", "F2")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句