根据另一个数据帧中的逻辑条件计算一个数据帧中的值

时间:2016-01-20 21:26:23

标签: r dataframe

我有一个包含预测值的数据帧(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值是否为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))

1 个答案:

答案 0 :(得分:1)

您可以设置一些逻辑检查

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