【问题标题】:Count values in one dataframe based on logical criteria in another根据另一个数据框中的逻辑标准计算一个数据框中的值
【发布时间】:2016-01-20 21:26:23
【问题描述】:

我有一个包含预测值的数据帧 (df1),它被编码为 -1 和 1 以表示预测的减少或增加。 0 表示没有预测的变化(注意:我不需要这个,因为我只对预测的增加或减少感兴趣)。 第二个数据帧采用相同的格式,但表示观察到的变化(即实际上是某物确实增加了还是减少了)。行和列匹配,因此 df1[1,1] 将代表预测值,而 df2[1,1] 将代表同一观察的观察响应。

我想要做的是计数或总共三件事:(i)预测是否正确(即 df1 中的 -1 和 1 值是否与 df2 中相应单元格中的相同值匹配) ; (ii) 预测值是否实际观察到没有变化(即 df1 中的 -1 和 1 值是否在 df2 的相应单元格中具有 0)和 (iii) 预测值是否完全不正确(即 df1 中的 -1 和 1 值是否在 df2 的相应单元格中具有相反的值)。

df1 <- as.data.frame(matrix(sample(-1:1, 40*2, replace=TRUE), ncol=8))
df2 <- as.data.frame(matrix(sample(-1:1, 40*2, replace=TRUE), ncol=8))

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    你可以设置一些逻辑检查

    # (i)
    sum(df1 == df2 & df1 != 0)
    # (ii)
    sum(df1 != df2 & df2 == 0)
    # (iii)
    sum(df1 != df2 & df1 != 0 & df2 != 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多