我在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代码。谢谢
答案 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)))