Wie kann man überprüfen, ob Zeilen bestimmter Spalten in R oder Excel dasselbe Vorzeichen haben oder nicht?

351
user3351523

Ich habe eine Tabelle mit vielen Spalten. Spalten, die mit "FC" beginnen, sollten alle Zeilen mit demselben Vorzeichen haben.

Unten in der Tabelle können Sie jedoch sehen, dass für die erste Zeile "NM_000319" die Spalten "FC_AT1BPABaP1vsAT1NT1" und "FC_AT1BPABaP3vsAT1NT3" ein negatives Vorzeichen haben, wobei die Spalte "FC_AT1BPABaP2ATSN1" positiv ist.
Wie kann ich also überprüfen, ob alle drei Spalten dasselbe Vorzeichen haben oder nicht.

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  
0

2 Antworten auf die Frage

0
Máté Juhász

Sie können diese Formel zB in Excel verwenden:
=AND(SIGN(B2)=SIGN(C2),SIGN(C2)=SIGN(D2))

Es macht einfach das, was Sie brauchen, überprüft, ob alle drei Zahlen das gleiche Zeichen haben.

Vielen Dank @ Máté Juhász. Es hat funktioniert, aber ich habe einen kleinen Zweifel. In meiner Tabelle habe ich 9 Spalten mit dem Namen "FC". 3 pro Gruppe. Also sollte jede Gruppe dasselbe Zeichen haben. Auf diese Weise kann ich das Ergebnis für eine Gruppe erhalten. Wie mache ich das für alle gleichzeitig? user3351523 vor 8 Jahren 0
Sie können die Lösung von Máté Juhász einfach erweitern: = AND (UND (SIGN (B2) = SIGN (C2), SIGN (C2) = SIGN (D2)), UND (SIGN (E2) = SIGN (F2), SIGN ( F2) = SIGN (G2)), AND (SIGN (H2) = SIGN (I2), SIGN (I2) = SIGN (J2))) Dies vergleicht das Vorzeichen der Spalten nach Gruppe und vergleicht dann, ob es für alle wahr ist Gruppen. Michthan vor 8 Jahren 0
Ja, ich habe es getan. Es hat mir gegeben, was ich will. Vielen Dank !! user3351523 vor 8 Jahren 0
Wenn Sie es nicht lösen können, aktualisieren Sie Ihre Frage bitte mit der genauen Formel und beschreiben Sie auch, wie genau sie nicht funktioniert (gibt Fehler / falsches Ergebnis ...). Máté Juhász vor 8 Jahren 0
0
Glen_b

In R kannst du das tun:

samesign <- function(x)  apply(mydf,1,samesign) 

Auf Ihre Daten (die ich einlese readindf) ergibt sich:

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