如何计算r中包含特定字符串的列数?

如何计算r中包含特定字符串的列数?,r,rstudio,data-analysis,data-cleaning,R,Rstudio,Data Analysis,Data Cleaning,我有一些数据,其中包含与这些名称关联的名称和标记。每个名称最多有94个标签。每个标记位于单独的列中。我需要计算包含特定字符串的列数。我该怎么做 编辑:样本数据 我想计算包含字符串WG的列数。这将返回包含WG行的列数 apply(X = df,MARGIN = 1,function(t){sum(grepl(pattern = "WG",x = t,fixed = TRUE))}) 我根据不同的情况编造了一些数据,安倍有两个苹果,克里斯有第三个苹果,伊桑没有苹果。使用此解决方案,如果没有匹配项,

我有一些数据,其中包含与这些名称关联的名称和标记。每个名称最多有94个标签。每个标记位于单独的列中。我需要计算包含特定字符串的列数。我该怎么做

编辑:样本数据


我想计算包含字符串WG的列数。

这将返回包含WG行的列数

apply(X = df,MARGIN = 1,function(t){sum(grepl(pattern = "WG",x = t,fixed = TRUE))})

我根据不同的情况编造了一些数据,安倍有两个苹果,克里斯有第三个苹果,伊桑没有苹果。使用此解决方案,如果没有匹配项,则会删除名称

library(tidyverse)

my_df<-data.frame(name=c("abe", "ben", "chris", "doug", "ethan"),
                  key1=c("apple", "apple", "banana", "apple", "orange"),
                  key2=c("apple", NA, "orange", NA, NA),
                  key3=c(NA, NA, "apple", NA, NA),
                  stringsAsFactors = FALSE)

my_df %>% gather("key", "tag", -name) %>% group_by(name) %>% filter(tag=="apple") %>% tally()
针对您的特殊情况,您可能需要探索“聚集”功能的工作原理,并可能使用“选择”来选择特定列。如果您是tidyverse管道的新手,我建议从运行第一个管道开始,检查每个短语如何修改dataframe ex、my_df%>%gatherkey、tag、-name

编辑;可以使用count函数的内置分组来简化:

my_df%>%gather("key", "tag", -name)%>%filter(tag=="apple")%>%count(name)

你能给我们提供一个可复制的数据吗?嗨,即墨。我添加了样本数据的图像。
  name      n
1 abe       2
2 ben       1
3 chris     1
4 doug      1
my_df%>%gather("key", "tag", -name)%>%filter(tag=="apple")%>%count(name)