将字符向量列转换为单行

时间:2017-09-17 15:19:39

标签: r

需要帮助转换类似于以下数据集的数据集:

unique_column   final_string
13_AR4X5JP5LR64V    c("bollywood Bollywood_Movies", "comedy Bollywood_Movies", "romance Bollywood_Movies", "world_cinema Bollywood_Movies")
13_AR4X5JP5LR64V    c("comedy US_TV", "drama US_TV")
17_AR5JKJP5LR96V    c("comedy IN_TV", "romance IN_TV", "world_cinema IN_TV")
17_AR5JKJP5LR96V    c("comedy IN_TV", "drama US_TV")
17_AR5JKJP5LR96V    c("drama US_TV", "thriller US_TV")

我想将此值转换为唯一列中每个值的一行。每个字符向量连接在一起。进入与此类似的数据框:

unique_column   final_string
13_AR4X5JP5LR64V    bollywood Bollywood_Movies,comedy Bollywood_Movies,romance Bollywood_Movies,world_cinema Bollywood_Movies,comedy US_TV,drama US_TV
17_AR5JKJP5LR96V    comedy IN_TV,romance IN_TV,world_cinema IN_TV,comedy IN_TV,drama US_TV,drama US_TV,thriller US_TV

我现在正在使用循环来处理这个问题,但这很慢。让我知道是否有另一种更快的方法来进行此处理。

在for循环中,我使用以下代码:

genres <- paste(unlist(data$final_string), collapse=',')

如果您需要任何澄清,请告诉我。

2 个答案:

答案 0 :(得分:1)

试试这个?

library(dplyr)
df%>%rowwise()%>%mutate(final_string=toString(unlist(final_string)))

答案 1 :(得分:1)

这不起作用吗?

library(dplyr)
df_new <- df %>% group_by(unique_column) %>% summarise(final_string= unlist(paste(unlist(final_string),collapse=",")))
df_new <- as.data.frame(df_new)