使用函数替换两个Data.Frame之间的值

时间:2018-02-04 13:57:03

标签: r logic

我是编程领域的新手,需要找到在R中完成以下逻辑的方法 我有一个data.frame包含4个变量

df_1

Item     Var1   Var2    Var3
111         2   3   4
222         6   2   8
333         7   1   4
444         3   2   7

等等。我有1300件这样的东西。 我需要做的是创建一个循环来将值替换为另一个data.frame df_2,其平均值为相同项目代码的Avg_values

df_2
Item    Avg_Value
111     3
222     2
333     7
444     5

但是,它应该只替换var1,var2,var3中那些大于df_2的Avg_values的值。如果它小于Avg_values那么它应该保持不变 我尝试创建一个函数并用于循环和替换命令来更改值,但它不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我们应该考虑Item吗?如果我们必须,那么:

t(apply(merge(df1,df2),1,function(x)c(x[1],replace(y<-x[-1],y>=x[5],x[5]))))
 Item Var1 Var2 Var3 Avg_Value
[1,]  111    2    3    3         3
[2,]  222    2    2    2         2
[3,]  333    7    1    4         7
[4,]  444    3    2    5         5

如果您愿意,可以删除最后一列: