R提取唯一值并对数据帧中的每一行进行排序



如果我有一个如下的数据帧,我如何提取唯一的值并对Targer列的每一行进行排序?

df <- data.frame (ID = c(5,377,6), Target = c("CD125, CD1, CD1, CD123", "CD3, CD1, CD1", "") )

我试过在一根弦上使用split、sort和unique,它有点奏效。但我不能把它应用到每一行。

s2 = "CD125, CD1, CD1, CD123"

s2 <- strsplit(s2, ",")

s2 <- sort(unlist(s2))

s2 <- unique(s2)

在除第一列(不是字符(之外的所有列上使用sapply

sapply(df[,-1,drop=F],function(x){
sort(unique(unlist(strsplit(x,", ",))))
},simplify=F)
$Target
[1] "CD1"   "CD123" "CD125" "CD3"

最新更新