【问题标题】:Replace Values between two Data.Frame using Functions使用函数替换两个 Data.Frame 之间的值
【发布时间】:2018-02-04 13:57:02
【问题描述】:

我是编程世界的新手,需要找到一种方法来在 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 那么它应该保持不变 我尝试创建一个函数并使用 for 循环和 Replace 命令来更改值,但它不起作用。有人可以帮忙吗?

【问题讨论】:

标签: r logic


【解决方案1】:

我们应该考虑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

如果需要,您可以删除最后一列:

【讨论】:

  • 嗨 Onyambu,是的,我们需要考虑该项目,因为这些是唯一值,并且功能应该适用于此。此代码正在运行非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 2015-07-15
  • 1970-01-01
相关资源
最近更新 更多