首页 > 解决方案 > 如何连接两列以创建新列?

问题描述

我有这个数据。

     datetime user_id song_id
1  2019-03-26       6      31
2  2019-03-26       4      30
3  2019-03-26       3      31
4  2019-03-26       9      34
5  2019-03-26      10      21
6  2019-03-26       8      38
7  2019-03-26       8      33
8  2019-03-26       8      28
9  2019-03-26       6      30

我想做第三列,所以数据看起来像这样

     datetime user_id song_id    usersong_id
1  2019-03-26       6      31    631
2  2019-03-26       4      30    430
3  2019-03-26       3      31    331
4  2019-03-26       9      34    934
5  2019-03-26      10      21    1021
6  2019-03-26       8      38    838
7  2019-03-26       8      33    833
8  2019-03-26       8      28    828
9  2019-03-26       6      30    630

我试过这段代码。

df %>%
  group_by(user_id, song_id) %>% 
  summarize(count = n()) %>% 
  mutate(usersong_id = c(user_id, song_id))

但是,它给了我这个错误:

错误:列usersong_id的长度必须为 1(组大小),而不是 2

标签: rdplyr

解决方案


您可以使用以下任何一种:

df <- df %>%
  mutate(usersong_id = paste0(user_id, song_id))

df <- df %>%
  unite(user_song_id, user_id, song_id, sep = "", remove = FALSE)

df$usersong_id <- paste0(df$user_id, df$song_id)

推荐阅读