【发布时间】:2018-06-09 12:46:35
【问题描述】:
我有这两张表;
<A> <B>
a1 a2 b1
ABC CAFE AB
ABD DRINK BF
ABF CAFE ..
ABFF DRINK
.. ..
我想知道像这样在表A中包含B到a1的汇总表;
library(dplyr)
library(stringr)
A1 <- A %>%
filter(str_detect(a1, "AB")) %>%
group_by(a2) %>%
summarize(n())
A2 <- A %>%
filter(str_detect(a1, "BF")) %>%
group_by(a2) %>%
summarize(n())
但是,我应该多次编写代码,以便我想要一个函数在str_detect函数中输入B表......我如何制作这个函数?
【问题讨论】:
-
lapply(A$b1,function(x)A%>%filter(str_detect(a1, x)) %>% group_by(a2) %>% summarize(n())) -
使用'function(x)A'对吗??
-
为什么不呢? A 不是参数,它会从 .Globalenv 中调用 A。如果它不起作用,请尝试一下,它确信有人会给你一个正确的方法。
lapply(B$b1,function(x)A%>%filter(str_detect(a1, x)) %>% group_by(a2) %>% summarize(n())) -
是的!我现在要研究 lapply 函数
标签: r filter group-by dplyr summarize