从 R 中的单元格中删除重复的单词

Remove duplicate words from cells in R

我有一个 2 列数据框,其中第一列是数字,第二列包含研究类别列表。我的数据的简化版本:

aa <- data.frame(a=c(1:4),b=c("Fisheries, Fisheries, Geography, Marine Biology", 
"Fisheries", "Marine Biology, Marine Biology, Fisheries, Zoology", "Geography"))

我想将 b 列转换为一个唯一的元素列表,即删除重复项,这样最终结果是

    a        b
    1        Fisheries, Geography, Marine Biology
    2        Fisheries
    3        Marine Biology, Fisheries, Zoology
    4        Geography

我可以对列表的单个元素执行此操作,例如,使用 unique(unlist(strsplit(aa[1]))) 但仅对单个元素执行此操作,而不是整个列(否则它 returns 整个列的单个唯一列表)。我不知道如何对整个列表执行此操作,一次一个元素。也许使用 lapply 并为 *unique(unlist(strsplit()))?

编写我自己的函数

非常感谢!

这应该适合你。

aa <- data.frame(a=c(1:4),b=c("Fisheries, Fisheries, Geography, Marine Biology", 
                              "Fisheries", "Marine Biology, Marine Biology, Fisheries, Zoology", "Geography"))

aa$b <- sapply(aa$b, function(x) paste(unique(unlist(str_split(x,", "))), collapse = ", "))