如何比较不同列的不同容差值的两个数据框?

时间:2019-04-24 06:02:51

标签: r compare multiple-columns

有两个数据框,例如:

第一个数据帧:

 d1       d2      d3
694   1.809509    74.9223
695   1.809510    73.2323
696   1.809511    23.7266
2243  1.465000    64.7542
2244  1.465001    85.7634
2651  1.143814    98.6344
2652  1.143813    46.9485

第二个数据帧:

  d1       d2     d3
694    1.809509   73.5324
2243   1.465000   72.7854
2652   1.143813   25.4734
2784   1.162545   61.3456
2924   1.989442   88.9845
2846   1.929882   96.3874

我想比较这两个数据帧。我在两个框架上都在all.equal()方法中尝试了一个公差级别。但要求不同的列具有不同的公差值。例如,d1的公差为340%,d3的公差值为230%,d2的公差值为'1'或23%。在进行比较时,它必须在这些公差值下通过。

帮助我解决此问题。尽力而为。

2 个答案:

答案 0 :(得分:0)

如果我正确理解,您正在寻找相同的功能。相同测试两个对象是否相同。

x <- mtcars
y <- mtcars

identical( x, y )

y[ 3, 5] <- 300

identical( x, y )

您可以为每列循环相同的功能。

for( i in names( x ) ){
    print( identical( x[,i] , y[,i]) )
}

在这种情况下,行和列的顺序相同-您可以计算出差异

z <- x - y
sapply( z , summary)

答案 1 :(得分:0)

此函数测试名称相同或位置相同的列是否大于或小于指定的阈值。

const addMyClassOneInheritance = (MyClassOne : { new(...args) }) => {
  return class extends MyClassOne {};
}
const MyFinalClass = addMyClassOneInheritance(MyClassTwo);
export class SynchMapComponent extends MyFinalClass{