如何在 R 或 Excel 中检查特定列的行是否具有相同的符号?

如何在 R 或 Excel 中检查特定列的行是否具有相同的符号?

我的电子表格有很多列。以“FC”开头的列应该包含具有相同符号的所有行。

但在下表中,您可以看到第一行“NM_000319”的列“FC_AT1BPABaP1vsAT1NT1”和“FC_AT1BPABaP3vsAT1NT3”的符号为负,而列“FC_AT1BPABaP2vsAT1NT2”的符号为正。
那么,我该如何检查这三列的符号是否相同呢?

tracking_id FC_AT1BPABaP1vsAT1NT1   FC_AT1BPABaP2vsAT1NT2   FC_AT1BPABaP3vsAT1NT3   
NM_000319   -7514.342949    1.821240463 -2.721908575    
NM_000403   2.831020725 -3.756945063    -251342.1488    
NM_001001560    -21.5329816 4.230898855 4.404446706 
NM_001003818    -738637764.9    1.707630437 1526.524518 
NM_001005290    -7.291187382    1.837827141 -1.993878903    
NM_001009554    -4.321191835    698.4121619 2.260286104 
NM_001009570    6.728377618 346.5860049 -1.877202148    
NM_001014837    -1.950676412    4.527666097 1727.863947 
NM_001018011    12.96256834 -21.85994794    10.07627791 
NM_001020818    5.918729877 43107941834 -5.208946431    
NM_001031848    3.223480013 -3.245050492    -104.259285 
NM_001033578    -9.58E+13   -34519832402    1.614184522 
NM_001037126    1.655300434 2481.777403 -2.389413271    
NM_001039457    3.631318663 1.706726068 6327.407683 

答案1

例如,您可以在 Excel 中使用以下公式:
=AND(SIGN(B2)=SIGN(C2),SIGN(C2)=SIGN(D2))

它只是做您需要的事情,检查所有三个数字是否具有相同的符号。

答案2

在 R 中你可以这样做:

samesign <- function(x) {abs(sum(sign(x)))==length(x)}
apply(mydf,1,samesign)

根据您的数据(我读到的readindf),得出以下结论:

apply(readindf[,2:4],1,samesign)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE

相关内容