我正在使用一个公共数据集,该数据集有许多指定弱势社区 (DAC) 的来源。我想创建另一列,如果任何指定为“是”(即使其他来源表示“否”),该列将指示“是”。
我还想知道一个列名是否有问题,因为它包含括号 - DAC(CARB)_LIC(CARB) 我在网上找到了一些地方说反引号`在这种情况下有帮助。
对于第一个问题,我尝试了在网上搜索到的多种不同的解决方案,但到目前为止都没有效果。我找不到很多多个 OR 条件(使用 |)创建列的示例。
我正在尝试命名新列 DAC。 表明社区是否处于不利地位的栏是:
这是我尝试的最后一件事:
clean_transport_2022 <-transform(clean_transport_2022, DAC = ifelse(Disadvantaged_Community_OEHHA == "YES" | Disadvantaged_Community_SB535 == "Yes", `DAC(CARB)_LIC(CARB)` == "Low Income and Disadvantaged" | Disadvantaged_Community_CE53 = "YES" | Disadvantaged_Community_CE54 = "YES", "Yes", "No"))
当你想要跨列操作时,这并不容易,因为 R 被设计为逐列工作。这是使用基础 R 的解决方案(不导入库)。我使用
apply
进行行操作。
由于您没有提供任何数据样本,我创建了一个我认为与您的类似的合成数据框:
cond <- function() sample(c("yes", "no"), 10, replace = TRUE, prob = c(0.3, 0.7))
df <- data.frame(
a = cond(),
b = cond(),
c = cond()
)
df$any_yes <- apply(df, 1, \(x) ifelse(any(x == "yes"), "yes", "no"))
df
#> a b c any_yes
#> 1 no yes no yes
#> 2 no yes no yes
#> 3 yes no no yes
#> 4 no no no no
#> 5 no yes no yes
#> 6 no no no no
#> 7 no no no no
#> 8 no yes yes yes
#> 9 yes no no yes
#> 10 yes no no yes
创建于 2024-02-25,使用 reprex v2.1.0
我建议阅读this以发布未来的问题。