0

我在 R 中有两个数据框,statedata,其中“state”是一列,topstatedata,其中“topstate”是一列。总 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代码。谢谢

4

2 回答 2

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
于 2013-06-18T05:44:10.103 回答
1

你不需要循环。这可以解决问题:

setNames(data.frame(unique(topstatedata$topstate), 
                    rep(unique(statedata$state),
                        each = length(unique(topstatedata$topstate)))), 
         names(statedata)))
于 2013-06-18T05:31:27.347 回答