首页 > 解决方案 > 拆分一列字符向量并返回一个列表

问题描述

我有以下数据框

df <- data.frame(Sl.No = c(1:6),
                 Variable = c('a', 'a,b', 'a,b,c', 'b', 'c', 'b,c'))


   Sl.No   Variable
   1         a
   2         a,b
   3         a,b,c
   4         b
   5         c
   6         b,c

我想将变量列中的唯一值分隔为列表

myList <- ("a", "b", "c")

我尝试了以下代码:

separator <- function(x) strsplit(x, ",")[[1]][[1]]
unique(sapply(df$Variable, separator))

然而,这给了我以下输出:

"a"

我请求一些帮助。我已经搜索过,但似乎无法找到答案。

标签: rsplitcharacterunique

解决方案


我们可以Variable在“,”处拆分列并获取所有值并仅选择unique那些值。

unique(unlist(strsplit(df$Variable, ",")))
#[1] "a" "b" "c"

如果Variable列是因子,则在使用之前将其转换为字符strsplit


推荐阅读