如何解决为 R 中数据 2 中的每个 id 重复数据帧 1
我有两个数据框:
df1 看起来像 2273780 个其他 ID:
id
XIZ92
DA8J0
df2 看起来像 29435 个其他 Comr :
Comr
9868
9875
1234
我想要一个 df3,它为每个 ID 复制所有 Comr,如下所示:
id Comr
XIZ92 9868
XIZ92 9875
XIZ92 1234
DA8J0 9868
DA8J0 9875
DA8J0 1234
解决方法
两个选项:
-
base::merge
:merge(dat1,dat2,by = NULL) # id COMR # 1 XIZ92 9868 # 2 DA8J0 9868 # 3 XIZ92 9875 # 4 DA8J0 9875 # 5 XIZ92 1234 # 6 DA8J0 1234
即使任一帧中有多个列,这也是如此。
(这不适用于
data.table
对象,因为data.table::merge.data.table
需要非空的by
参数。) -
expand.grid
:do.call(expand.grid,c(dat1,dat2)) # id COMR # 1 XIZ92 9868 # 2 DA8J0 9868 # 3 XIZ92 9875 # 4 DA8J0 9875 # 5 XIZ92 1234 # 6 DA8J0 1234
只要每一帧中只有一列就可以工作;如果有两列或更多列,这将不必要地爆炸。试试吧!
dat2$ign <- 1 nrow(do.call(expand.grid,dat2))) # [1] 18 # expecting 6
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。