首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中将两个帧合并为一个帧

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

Stack Overflow用户
提问于 2019-11-17 16:16:21
回答 3查看 44关注 0票数 0

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

日期范围:

代码语言:javascript
复制
date
2018/7/7
2018/7/8
2018/7/9

城市框架:

代码语言:javascript
复制
area
beijing
shanghai
guangzhou

我想要的结果是:

代码语言:javascript
复制
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 

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2019-11-17 16:20:15

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

代码语言:javascript
复制
expand.grid(df1$date, df2$area)

或来自tidyrcrossing

代码语言:javascript
复制
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 

data

代码语言:javascript
复制
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))
票数 1
EN

Stack Overflow用户

发布于 2019-11-17 16:29:42

这也可以给你想要的输出:

代码语言:javascript
复制
data.frame(date = sort(rep(df1$date, length(df2$area))), area= df2$area)
#       date      area
# 1 2018/7/7   beijing
# 2 2018/7/7  shanghai
# 3 2018/7/7 guangzhou
# 4 2018/7/8   beijing
# 5 2018/7/8  shanghai
# 6 2018/7/8 guangzhou
# 7 2018/7/9   beijing
# 8 2018/7/9  shanghai
# 9 2018/7/9 guangzhou
票数 1
EN

Stack Overflow用户

发布于 2019-11-17 18:40:09

base R中,您可以使用lapplyrbind来创建它

代码语言:javascript
复制
Reduce(rbind,lapply(df1$date, function(v) data.frame(date = v, area = df2["area"])))

其中输出如下:

代码语言:javascript
复制
      date      area
1 2018/7/7   beijing
2 2018/7/7  shanghai
3 2018/7/7 guangzhou
4 2018/7/8   beijing
5 2018/7/8  shanghai
6 2018/7/8 guangzhou
7 2018/7/9   beijing
8 2018/7/9  shanghai
9 2018/7/9 guangzhou
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58898693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档