【问题标题】:Replace numerical values in a data.frame according to another data.frame根据另一个data.frame替换data.frame中的数值
【发布时间】:2014-01-14 17:02:21
【问题描述】:

我有两个如下所示的 data.frame:

DF1    
Col1    Col2    Col3    Col4      
 3       -2      -1       4     
 55      45     -23      98     
 12      43     123      23      



DF2     
Col1    Col2    Col3    Col4           
  1      0       0       0     
  1      1       1       0     
  1      0       1       1          

我需要以下输出:

DF3   
Col1    Col2    Col3    Col4      
 3       0       0       0     
 55      45     -23      0     
 12      0      123      23      

也就是说我需要根据 DF2 将 DF1 中的数值替换为 0 值。

PS:每个 DF 包含数千行和列。

【问题讨论】:

  • 关于 DF1 和 DF2 的其他假设是什么?它们的行数和列数是否相同?两个数据集中的列是否具有相同的名称?列的顺序是否相同?

标签: r dataframe


【解决方案1】:
as.matrix(DF1) * as.matrix(DF2)

但我什至不认为as.matrix() 是必要的。只是DF1 * DF2 应该做。之所以可行,是因为* 是每个相应组件的乘法。这不同于典型的矩阵乘法%*%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多