首页 > 解决方案 > 如何根据R中多个变量的条件将新变量添加到现有数据框中?

问题描述

在 R 中,我有一个包含多个列的数据集,其中出现“真”和“假”这两个词,但在这些变量 id1 到 id4 的随机位置。变量 id1 和 id4 也有一些缺失值 (NA)。

id1 <- c('abc', 'false', 198,201)
id2 <- c(763,723,'true',323)
id3 <- c('true', 'def', 223,'hij')
id4 <- c(627,376,237,'false')

df1 <- data.frame(id1,id2,id3,id4)

我想在我的数据框中添加一个变量“id5”,它表示特定行的真或假。我将如何最好地做到这一点?

期望的结果:

    id1   id2  id3   id4    id5
1   abc   763  true  627    true
2   false 723  def   376    false
3   198   true 223   237    true
4   201   323  hij   false  false

标签: rconditional-statements

解决方案


由于其中一个值始终存在于我们可以使用的数据中rowSums

df1$id5 <- rowSums(df1 == 'true', na.rm = TRUE) > 0
df1

#    id1  id2  id3   id4   id5
#1   abc  763 true   627  TRUE
#2 false  723  def   376 FALSE
#3   198 true  223   237  TRUE
#4   201  323  hij false FALSE

我们也可以使用 row-wise apply

apply(df1 == 'true', 1, any, na.rm = TRUE)

推荐阅读