如何用dplyr语法去除数据框列表列重复项并转为字符列
解决方案
首先重现你的数据框:
library(dplyr) library(purrr) df <- structure(list(class = c("Großbrittanien", "Rest Europa"), countries = list( c("United Kingdom", "United Kingdom"), "Spain")), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"))
使用dplyr结合purrr的语法,可一步完成列表列去重并转为字符列的操作:
df_cleaned <- df %>% mutate(countries = map_chr(countries, ~ paste(unique(.x), collapse = ", ")))
代码说明
map_chr():遍历countries列表列的每一个元素,处理后返回字符类型向量,直接将列表列转换为字符列unique(.x):对每个列表内的元素去重,移除重复的"United Kingdom"条目paste(..., collapse = ", "):把去重后的向量合并成单个字符串(如果列表内有多个不同国家,会用逗号分隔)
处理后的结果如下:
# A tibble: 2 × 2 class countries <chr> <chr> 1 Großbrittanien United Kingdom 2 Rest Europa Spain
内容的提问来源于stack exchange,提问作者Lenn
相关产品推荐
相关产品推荐

