У меня есть таблица со многими столбцами. В этом столбцы, начинающиеся с "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 

2 ответа2

0

В 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
0

Вы можете использовать, например, эту формулу в Excel:
=AND(SIGN(B2)=SIGN(C2),SIGN(C2)=SIGN(D2))

Он просто делает то, что вам нужно, проверяет, все ли три числа имеют одинаковый знак.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .