如何使用通配符匹配R中的任何模式以重复所有组合的实验?

时间:2015-01-06 22:30:40

标签: regex r

这是head(raw_data)

cust_acct_clsfn_key Acct_clsfn cust_gendr_code         dma_name brand_type_desc cnt_sndrs
6                    1  Consumers               M         NEW YORK       Unbranded        60
18                   3     Guests               #          CHICAGO         Branded        88
20                   1  Consumers               M      LOS ANGELES         Branded     25008
22                   1  Consumers               F DALLAS-FT. WORTH         Branded      6639
31                   1  Consumers               M   SEATTLE-TACOMA         Branded      7260
33                   1  Consumers               M DALLAS-FT. WORTH       Unbranded        44

我正在尝试为Acct clsfn和brand_type_desc的每种可能的排列重复实验。 让我们说Acct_clsfn和brand_type_desc只有2个唯一值,因此(2 + 1)*(2 + 1)= 9种组合是可能的,但我正在尝试编写一般代码。

a = unique(raw_data$Acct_clsfn)
b = unique(raw_data$brand_type_desc)

for (j in a)){

    for (i in b){
        raw_data_seg <- raw_data[raw_data$brand_type_desc==i,]
        doSomething(raw_data_seg)
    }
}

此代码适用于重复以下组合的实验(expand.grid也会这样做):

  • [消费品 - 品牌] [消费者 - 无品牌] [嘉宾 - 品牌] [嘉宾 - 无品牌]
然而,考虑到我想要包括的以下案例,它不会重复实验:

  • [消费者和客人 - 品牌] [消费者和客人 - 无品牌] [消费者 - 品牌和无品牌] [嘉宾 - 品牌和 无品牌] [消费者和客人 - 品牌和非品牌]

我尝试过但没有效果: 扩展列表a和b,通过添加1个通配符(类似于Excel中的*),它将匹配raw_data [raw_data $ brand_type_desc == i,]中的任何值,因此不会过滤任何内容。

由于

PS这是我的第一个问题,请原谅任何违规使用代码!

0 个答案:

没有答案