2016-08-26 13 views
0

私は2つのdata.frames abを持っており、列を列と列compareと比較したいと思います。列だけを変換、それは同じ要素を持つ列を検出できないが、異なる順序で列ごとに2つのdata.framesを比較し、各列の要素の順序を無視する方法

compare(a,b,ignoreOrder=TRUE,colsOnly=TRUE) 

私は個別の列を比較するときしかし、私はライトの答えを得ます。私はlapplyとcolでcolをチェックすることを余儀なくされましたが、結果は比較の出力を直接保存することで容易に管理できません。

b 
    PFT    NAME HGT_MIN  DBH BLEAF_MIN BROOT_MIN BSAPWOOD_MIN BALIVE_MIN BDEAD_MIN BLEAF_BL 
1 1   C4_grass 0.50 0.121182 0.010073600 0.010073600 2.93168e-05 0.020176500 0.00000e+00 0.0100736 
2 2 Early_tropical 0.50 0.121182 0.045331200 0.045331200 5.61608e-05 0.090718600 8.32140e-04 5.5130100 
3 3  Mid_tropical 0.50 0.121182 0.026695100 0.026695100 5.48205e-05 0.053444900 4.90038e-04 5.6997500 
4 4 Late_tropical 0.50 0.121182 0.035761300 0.035761300 5.33890e-05 0.071576000 6.56466e-04 8.0646600 

a 
    PFT    NAME HGT_MIN  DBH BLEAF_MIN BROOT_MIN BSAPWOOD_MIN BALIVE_MIN BDEAD_MIN BLEAF_BL 
1 1   C4_grass 0.50 0.121182 0.010073600 0.010073600 2.93168e-05 0.020176500 0.00000e+00 0.0100736 
2 2 Early_tropical 0.50 0.121182 0.026695100 0.026695100 5.48205e-05 0.053444900 4.90038e-04 5.6997500 
3 3  Mid_tropical 0.50 0.121182 0.035761300 0.035761300 5.33890e-05 0.071576000 6.56466e-04 8.0646600 
4 4 Late_tropical 0.50 0.121182 0.045331200 0.045331200 5.61608e-05 0.090718600 8.32140e-04 5.5130100 
+0

最小限再現可能な例をご提供ください –

答えて

0

これはいかがですか?

b <- read.table(text="row PFT    NAME HGT_MIN  DBH BLEAF_MIN BROOT_MIN BSAPWOOD_MIN BALIVE_MIN BDEAD_MIN BLEAF_BL 
1 1   C4_grass 0.50 0.121182 0.010073600 0.010073600 2.93168e-05 0.020176500 0.00000e+00 0.0100736 
       2 2 Early_tropical 0.50 0.121182 0.045331200 0.045331200 5.61608e-05 0.090718600 8.32140e-04 5.5130100 
       3 3  Mid_tropical 0.50 0.121182 0.026695100 0.026695100 5.48205e-05 0.053444900 4.90038e-04 5.6997500 
       4 4 Late_tropical 0.50 0.121182 0.035761300 0.035761300 5.33890e-05 0.071576000 6.56466e-04 8.0646600",header=T)[,-1] 

a <- read.table(text="row PFT    NAME HGT_MIN  DBH BLEAF_MIN BROOT_MIN BSAPWOOD_MIN BALIVE_MIN BDEAD_MIN BLEAF_BL 
1 1   C4_grass 0.50 0.121182 0.010073600 0.010073600 2.93168e-05 0.020176500 0.00000e+00 0.0100736 
       2 2 Early_tropical 0.50 0.121182 0.026695100 0.026695100 5.48205e-05 0.053444900 4.90038e-04 5.6997500 
       3 3  Mid_tropical 0.50 0.121182 0.035761300 0.035761300 5.33890e-05 0.071576000 6.56466e-04 8.0646600 
       4 4 Late_tropical 0.50 0.121182 0.045331200 0.045331200 5.61608e-05 0.090718600 8.32140e-04 5.5130100",header=T)[,-1] 

compare <- data.frame(sapply(1:ncol(a), function(x){a[,x]==b[,x]})) 
names(compare) <- names(a) 
colSums(!compare) 

結果の数値が0より大きい場合は、不一致があることを示します。

関連する問題