如果我有一个如下的数据帧,我如何提取唯一的值并对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"