拆分一列字符向量并返回一个列表

时间:2018-05-11 06:57:09

标签: r split character unique

我有以下 dataframe

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"

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

1 个答案:

答案 0 :(得分:3)

我们可以将Variable列拆分为&#34;,&#34;并获取所有值并仅选择unique个。

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

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