我的df如下,我想添加新列以基于col1
来添加ID
。我用pdlyr编写代码,但是我不知道如何解决它。
df %>%
group_by(ID) %>%
mutate(col2= paste0(col1,?????) <- what to write here?
df<-read.table(text="
ID col1
1 A
1 B
1 A
2 C
2 C
2 D", header=T)
result
ID col1 col2
1 A ABA
1 B ABA
1 A ABA
2 C CCD
2 C CCD
2 D CCD
答案 0 :(得分:3)
使用defaultdict
参数。
collapse
给予:
df %>%
group_by(ID) %>%
mutate(col2= paste(col1, collapse = "")) %>%
ungroup
或者仅使用基数R,我们可以使用这种单线:
# A tibble: 6 x 3
ID col1 col2
<int> <fct> <chr>
1 1 A ABA
2 1 B ABA
3 1 A ABA
4 2 C CCD
5 2 C CCD
6 2 D CCD
给予:
transform(df, col2 = ave(as.character(col1), ID, FUN = function(x) paste(x, collapse = "")))