【问题标题】:Using IF statement to compare values of two columns, how to swap value in one column for other based on statement使用IF语句比较两列的值,如何根据语句将一列中的值交换为另一列
【发布时间】:2022-01-17 05:32:26
【问题描述】:

所以我有一个如下所示的日期框架。如果 PM_base 列中的值大于 PM_RAMP 列(第 15 行)中的值,我希望 PM_base 列中的值恢复为 PM_RAMP 值。

我使用了以下代码,但是它似乎没有工作并给出了输出:

条件的长度 > 1,并且只使用第一个元素

if (combined_data$PM_base > combined_data$PM_RAMP)  {combined_data$PM_base == combined_data$PM_RAMP}

我们将不胜感激!

【问题讨论】:

  • 试试dplyrmutate-函数:mutate(combined_data, PM_base = ifelse(PM_base > PM_RAMP, PM_RAMP, PM_base))。而== 用于比较两个表达式,而不是<- 的赋值。
  • <- 或单个=,即

标签: r dataframe if-statement multiple-columns


【解决方案1】:

你可以用data.table做到这一点

library(data.table)

setDT(combined_data)

combined_data[PM_base > PM_RAMP, PM_base := PM_RAMP]

如果可行,请尝试并提供反馈。

PS:下次请提供一些数据。最好使用dput(),这样更容易重现和测试。

【讨论】:

  • 这很完美!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 2020-09-09
  • 2021-07-10
  • 2020-03-03
  • 1970-01-01
  • 2017-10-01
相关资源
最近更新 更多