Você pode usar, por exemplo, esta fórmula no Excel:
=AND(SIGN(B2)=SIGN(C2),SIGN(C2)=SIGN(D2))
Ele simplesmente faz o que você precisa, verifica se todos os três números têm o mesmo sinal.
Eu tenho uma planilha com muitas colunas. Em que as colunas que começam com "FC" devem ter todas as linhas com o mesmo sinal.
Mas abaixo na tabela você pode ver que para a primeira linha "NM_000319" as colunas "FC_AT1BPABaP1vsAT1NT1" e "FC_AT1BPABaP3vsAT1NT3" têm sinal negativo onde a coluna "FC_AT1BPABaP2vsAT1NT2" é positiva.
Então, como posso verificar se todas as três colunas têm o mesmo sinal ou não.
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
Em R você pode fazer isso:
samesign <- function(x) {abs(sum(sign(x)))==length(x)}
apply(mydf,1,samesign)
Em seus dados (que eu li em readindf
) isso dá:
apply(readindf[,2:4],1,samesign)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
Tags r microsoft-excel file-filter