我有一个带有管道标识符列表的列
Identifier
O75496|P62979|P62987|P0CG47|P0CG48|O00487|P25786
P28066|P60900|O14818|P20618|P40306
Q99436|P28062|P28065
P28062|P28065|P62191|P35998|P17980|P43686
如何在每行中生成一列标识符? 输出读取这样的东西
Identifier Count
O75496|P62979|P62987|P0CG47|P0CG48|O00487|P25786 7
P28066|P60900|O14818|P20618|P40306 5
Q99436|P28062|P28065 3
P28062|P28065|P62191|P35998|P17980|P43686 6
提前致谢!
答案 0 :(得分:1)
sapply(strsplit(df$Identifier, '[|]'), length)
对于特殊情况,只需添加unique
函数
sapply(strsplit(df$Identifier, '[|]'), function(i) length(unique(i)))
答案 1 :(得分:1)
没有拆分的基本R选项将是
df1$Count <- nchar(gsub("[^|]", "", df1$Identifier)) + 1L
df1$Count
#[1] 7 5 3 6
或gregexpr
sapply(gregexpr("[|]", df1$Identifier),
function(x) sum(attr(x, "match.length"))+1)
#[1] 7 5 3 6