我想在一个过滤器的组合列表中添加一个过滤器组合,这些过滤器组合应用于一个类似于以下的嵌套框架的多个列:
df <- data.frame(
ID1 = c("Asset1", "Asset2", "Asset1", "Asset2", "Asset1", "Asset2", "Asset1", "Asset2"),
ID2 = c("Asset1", "Asset1", "Asset2", "Asset2", "Asset1", "Asset1", "Asset2", "Asset2"),
var1= c(0.011, 0.012, 0.012, 0.022, .0011, 0.0012, 0.0012, 0.0022)
)
字符串
举个例子:
我想计算以下组合的var 1的值:
filter1: ID1=='Asset1' and ID2=='Asset1'
型
和
filter2: ID1=='Asset1' and ID2=='Asset2'
型
对于一个组合,我显然可以这样做,用一个dspur过滤器:
library(dplyr)
df %>% filter(ID1=='Asset1', ID2=='Asset1')
型
但是我想用一个for循环来迭代所有的过滤器:
filter_list <- c(filter1, filter2)
for (filter_i in filter_list){
df %>% filter(filter_i)
}
型
2条答案
按热度按时间iaqfqrcu1#
使用
quos
和bang-bang-bang aka!!!
,您可以执行以下操作:字符串
hk8txs482#
您可以从
1:2
列中的unique
资产创建过滤器列表。接下来,使用expand.grid
使用所有2-排列生成filter_list
。字符串
最后,你可以用
subset
覆盖列表。型
或者,如果您坚持使用
for
循环,型
型