仅从逗号分隔的字符串中选择唯一值

时间:2016-05-16 18:05:53

标签: r

我有一个如下所示的数据框:

A B C
1 M 1,2
2 M 1,5,5,5
3 M 4,5,7,7

我想从列C中选择唯一的值来实现这一点:

A B C
1 M 1,2
2 M 1,5
3 M 4,5,7

1 个答案:

答案 0 :(得分:3)

假设您的C列是此示例中的字符向量

dd <- read.table(text="A B C
1 M 1,2
2 M 1,5,5,5
3 M 4,5,7,7", header = TRUE, stringsAsFactors = FALSE)

您可以使用strsplit在逗号上拆分列值,然后使用以下代码重新组合唯一值:

dd$D <- sapply(strsplit(dd$C, ",", fixed = TRUE), function(x) 
    paste(unique(x), collapse = ","))
dd
#   A B       C     D
# 1 1 M     1,2   1,2
# 2 2 M 1,5,5,5   1,5
# 3 3 M 4,5,7,7 4,5,7