如何在R中将两个帧合并为一个

问题描述 投票:0回答:1

我有两个data.frame,第一个是日期框架,第二个是城市框架,并且我试图将两个框架合并为一个。

日期范围:

date
2018/7/7
2018/7/8
2018/7/9

城市框架:

area
beijing
shanghai
guangzhou

我想要的结果是:

date             area
2018/7/7      beijing
2018/7/7      shanghai 
2018/7/7      guangzhou 
2018/7/8      beijing
2018/7/8      shanghai 
2018/7/8      guangzhou 
2018/7/9      beijing
2018/7/9      shanghai 
2018/7/9      guangzhou 

提前感谢!

r merge
1个回答
0
投票

我们可以在基数R中使用expand.grid

expand.grid(df1$date, df2$area)

crossing中的tidyr

tidyr::crossing(df1, df2)

#   date     area     
#  <fct>    <fct>    
#1 2018/7/7 beijing  
#2 2018/7/7 guangzhou
#3 2018/7/7 shanghai 
#4 2018/7/8 beijing  
#5 2018/7/8 guangzhou
#6 2018/7/8 shanghai 
#7 2018/7/9 beijing  
#8 2018/7/9 guangzhou
#9 2018/7/9 shanghai 

数据

df1 <- structure(list(date = structure(1:3, .Label = c("2018/7/7", "2018/7/8", 
"2018/7/9"), class = "factor")), class = "data.frame", row.names = c(NA, -3L))

df2 <- structure(list(area = structure(c(1L, 3L, 2L), .Label = c("beijing", 
"guangzhou", "shanghai"), class = "factor")), class = "data.frame", 
row.names = c(NA, -3L))
© www.soinside.com 2019 - 2024. All rights reserved.