[英]Using dplyr count number of special characters rowwise and mutate into a new column
一个示例数据框:
example_df = data.frame(Gene.names = c("A", "B"),
Score = c("3.69,2.97,2.57,3.09,2.94",
"3.99,2.27,2.89,2.89,2.00,2.52,2.09,2.83") )
我想计算“分数”列的每一行中用逗号分隔的“数字”(值)的数量,并创建一个新列,比如“计数”。 我怎样才能做到这一点? 我试图用谷歌搜索,但在那里没有得到太多帮助。
我们可以在,
使用str_count
并加 1
library(stringr)
library(dplyr)
example_df %>%
mutate(Count = str_count(Score, ",") + 1)
-输出
# Gene.names Score Count
#1 A 3.69,2.97,2.57,3.09,2.94 5
#2 B 3.99,2.27,2.89,2.89,2.00,2.52,2.09,2.83 8
或者使用base R
和gsub
删除不是a ,
的字符,用nchar
获取字符数并加1
nchar(gsub("[^,]+", "", example_df$Score)) + 1
#[1] 5 8
另一个基本 R 选项是使用strsplit
+ lengths
,例如,
transform(
example_df,
Count = lengths(strsplit(Score,","))
)
这使
Gene.names Score Count
1 A 3.69,2.97,2.57,3.09,2.94 5
2 B 3.99,2.27,2.89,2.89,2.00,2.52,2.09,2.83 8
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.