【问题标题】:Replace values in df/matrix based on another matrix/df in R根据 R 中的另一个矩阵/df 替换 df/matrix 中的值
【发布时间】:2012-10-12 08:55:51
【问题描述】:

我有两个数据框,一个包含数字,第二个是二进制,两者大小相同。如果数据框 B 中的相应变量为 0 而不是 1,我现在想用 NA 替换数据框 A 中的所有数字。如果为 1,则数字应保持不变。 我该怎么做?

df A

   A  B  C
1  34 32 12
2  52 23 34

df 乙

   A  B  C
1  1  1  1
2  0  0  1

想要的结果

   A  B  C
1  34 32 12
2  na na 34

【问题讨论】:

    标签: r matrix replace


    【解决方案1】:

    如果您正在使用矩阵,那么就像mat1[which(mat2 == 0)] <- NA 一样简单。

    【讨论】:

    • 啊,更好。进入 R 的这种子集和索引方式需要花费惊人的时间......
    • 注:你不需要which
    【解决方案2】:

    我找到了答案,在阅读文档后,我认为替换命令仅适用于矢量,但以下方法可以解决问题:

    new.df <- replace(A.df, B.df == 0, "NaN")
    

    【讨论】:

      猜你喜欢
      • 2019-12-22
      • 1970-01-01
      • 2020-12-29
      • 2020-09-16
      • 2018-11-17
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多