【问题标题】:How to change any row with certain values to NA across multiple columns?如何跨多列将具有特定值的任何行更改为 NA?
【发布时间】:2022-08-17 23:09:54
【问题描述】:

假设有一个包含许多变量的数据框。 21:31 列中的值 9 需要更改为 NA。现有列 (21:31) 中的 NA 值需要保持 NA。等于或小于 7 的值需要保持其当前值 (21:31)。在提到的列之外,数据需要保持不变。

在本例中,21:31 是列数,而不是变量名。

E.g

ID  21   22   23    24 
1   3    5    3     9
2   NA   NA   NA    NA
3   5    7    7     7
4   9    9    9     9

我将非常感谢您的帮助 - 我会/正在尝试自己做,但我正在写我的论文并且对 R 很陌生,而且它花费的时间比我想要的要长得多。

提前致谢。

    标签: r dplyr tidyverse rstudio


    【解决方案1】:

    base R 中,对除第一列 ('ID') 以外的数据进行子集化,创建一个逻辑表达式以匹配 9 值并分配那些 NA

    df1[-1][df1[-1]==9] <- NA
    

    【讨论】:

      【解决方案2】:

      dplyr 中,您可以使用na_if across 选定的列:

      df %>% 
         mutate(across(21:31, ~ na_if(.x, 9)))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多