【发布时间】:2016-06-15 18:26:27
【问题描述】:
我目前正在处理下面列出的四个多数据框。
- tmp:主表(变量包括:组、重量、国家、收入)
- price1:组 1 - 3 的价格表 1(包括变量:组、重量、价格)
- price2:组 4 - 8 的价格表 2(包括变量:组、价格)
- price3:第 9 组的价格表 3(变量包括:组、国家、重量、价格)
“重量”是一个从1到200的整数变量。在价格表1和3中,每个“重量”都有一个价格值。
我想保持主表不变,并有条件地将价格表 1、2、3 合并到它。主表中的“组”变量范围从 1 到 9。价格表也基于“组”值进行管理。每个值代表一个单一的产品。同一价格表中的产品性质相似,价格不同。但是,跨价格表的产品具有不同的性质。由于这种差异,合并标准也不同。
此次合并的目的是比较不同产品的收入和价格。
以下是主表和3价格表的合并条件。
- 价格表 1 到主表的主键:组和重量
- 价格表 2 到主表的主键:组
- 价格表 3 到主表的主键:组 & 国家 & 重量
使用代码:
test <- ifelse(tmp$group %in% c(1,2,3), merge(tmp,price1,by=c("group","weight"))
,ifelse(tmp$group %in% c(4,5,6,7,8),merge(tmp, price2, by= "group")
,merge(tmp,price3, by=c("group","country","weight")))))
我的代码的问题是返回对象不是数据框,它在 R 中显示为一个大列表。
【问题讨论】:
-
另外:this Q&A 可能会有所帮助。
标签: r merge conditional