r - 如何在R中将两帧合并为一帧
问题描述
我有两个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
提前致谢!
解决方案
我们可以expand.grid
在基础 R中使用
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))
推荐阅读
- c++ - 从嵌套映射中删除重复项(k-core 算法)
- ravendb - 如何覆盖 RavenDB 中的 SaveChanges 方法?
- python - 将 for 循环的值放在下一个函数中
- html - 随机的网站上线后出现在 HTML 代码中
- android - 使用不同的 Build Variant 处理 DropBox
- vuejs3 - Vue3等到子组件被挂载
- selenium - 如何单击包含元素 td 样式的列中的按钮?在机器人框架中
- xamarin - Microsoft Visual Studio Appcenter 是否支持分发到 Microsoft Store?
- python - 使用 find_elements 时列表没有属性文本
- java - 如果 getter 方法中的对象为空,如何将文本字段设置为定义的值