在R中嵌套for循环以获得状态组合

时间:2013-06-18 05:16:34

标签: r loops nested

我在R中有两个数据框,声明为“状态”是其中的一列和topstatedata,其中“topstate”是其中的一列。 总上限为5,总州为26。 我想运行一个嵌套循环来获取我的数据中的以下组合,以便每个topstate形成一个状态组合。 像这样的东西 -

topstate   state
CA         AB
TX         AB
NJ         AB
FL         AB
NY         AB
CA         AE
TX         AE
NJ         AE
FL         AE
NY         AE

.....等等 请建议我输出这样的R代码。谢谢

2 个答案:

答案 0 :(得分:3)

您可以通过以下方式使用功能expand.grid。我编写了自己的data.frames,因此您需要指定脚本中的df1和df2。

df1 <- data.frame(topstate=c("CA","TX","NJ","FL","NY"))
df2 <- data.frame(state=c("AB","AE"))
result <- expand.grid(topstate=unique(df1$topstate),state=unique(df2$state))
result

   topstate state
1        CA    AB
2        TX    AB
3        NJ    AB
4        FL    AB
5        NY    AB
6        CA    AE
7        TX    AE
8        NJ    AE
9        FL    AE
10       NY    AE

答案 1 :(得分:1)

您不需要循环。这样就可以了:

setNames(data.frame(unique(topstatedata$topstate), 
                    rep(unique(statedata$state),
                        each = length(unique(topstatedata$topstate)))), 
         names(statedata)))