【发布时间】:2019-06-29 08:20:27
【问题描述】:
我有两个df 我想要merge。
df1 看起来像这样:
CODE TAX PRICE TOTAL
4577 0.9 99.1 100
8965 NA 25 25
7788 1.5 13.5 15
4021 NA 20 20
6987 0.00 40 40
df1 是一个dataframe,包含代码、取决于价格的税费以及税费+价格的总和(总和)。
df2 看起来像这样:
CODE TAX.CLASS MEANING
4577 CLASS1 Car
4577 CLASS2 Car
8965 CLASS1 Internet
2635 CLASS1 Computer
7788 CLASS1 Phone
7788 CLASS2 Phone
1258 CLASS1 Water
4021 CLASS1 Food
6987 CLASS1 Gasoline
6987 CLASS2 Gasoline
每个code 显示tax.class 和meaning。
我想得到这样的输出:
CODE MEANING TAX.CLASS TAX PRICE TOTAL
4577 Car CLASS2 0.9 99.1 100
8965 Internet CLASS1 NA 25 25
7788 Phone CLASS2 1.5 13.5 15
4021 Food CLASS1 NA 20 20
6987 Gasoline CLASS1 0.00 40 40
到目前为止,我已经尝试过这些问题的答案:
- How to join (merge) data frames (inner, outer, left, right)?
- How to merge two dataframes in R conditionally (common column, condition)
- Merge 2 dataframes based on condition in R
- Merge Dataframe with conditional statements in R
但它没有按我的意愿工作。问题基本上是match df1 中的每个code 和df2 中的code 但如果有NA 或df1 <= 0.00 中的TAX 值,则检索CLASS1,另一方面手,如果在codes 上的df1 > 0.00 中有TAX 值重复两次,则检索CLASS2。
有什么建议吗?
最好是BaseR。
【问题讨论】:
-
没有名为“值”的列。你指的是什么?
-
我的意思是,
TAX的值在df1。
标签: r dataframe merge conditional