【问题标题】:Populate new column in R from other columns based on conditional statement根据条件语句从其他列填充 R 中的新列
【发布时间】:2017-07-04 15:41:05
【问题描述】:

我在 R 中有一个数据框 (data.frame(test)),其中包含以下信息。

Columns1 | Column2 | Column3
1 | 11 | 33
3 | 34 | 56 
4 | 24 | 23
5 | 74 | 64 
3 | 45 | 52
2 | 54 | 53
1 | 76 | 92

我正在尝试根据第 1 列的条件语句创建一个由第 2 列和第 3 列中的数据填充的新列。

我似乎无法弄清楚如何编写适当的条件。

if (test$column1 == 3 || test$column1 == 2 || test$column1 == 1) {
test$Newcolumn = test$column1
} else {
  test$NewColumn = test$column2
}

最终的结果应该是这样的:

Columns1 | Column2 | Column3 | NewColumn 
1 | 11 | 33 | 11
3 | 34 | 56 | 33
4 | 24 | 23 | 23
5 | 74 | 64 | 64
3 | 45 | 52 | 45
2 | 54 | 53 | 54
1 | 76 | 92 | 76

【问题讨论】:

  • 一个简单的ifelse,比如ifelse(test$column1 %in% c(1,2,3), test$column2, test$column3)
  • 成功了,谢谢。
  • 很高兴能帮到你

标签: r if-statement conditional


【解决方案1】:

使用dplyr,假设mydf 是您的数据框:

mydf %>% mutate(newColumn = ifelse(column1 %in% 1:3, column2, column3)) -> res

我假设您的问题中有错字,并且您打算将 column2 值分配给 newColumn,以防满足条件。

【讨论】:

  • 是的,这只是一个错字。当我运行我的代码时,它要么仅使用第 1 列或仅使用第 2 列填充新列。
【解决方案2】:

解决方案“a simple ifelse like ifelse(test$column1 %in% c(1,2,3), test$column2, test$column3)” by – joel.wilson 奏效了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2020-02-04
    • 2020-06-22
    相关资源
    最近更新 更多