Erstellen eine neue Variablen unter Verwendung von zwei Spalten, wenn sie unter Verwendung von R bestimmte Bedingungen erfüllen
-
26-09-2019 - |
Frage
Ich bin dieses Beispiel Daten Bereitstellung über meine Frage zu bekommen.
aid=c(1,2,3,4,5,6,7,8,9,10)
foson=c(0,1,2,0,6,9,0,0,3,0)
fosof=c(0,0,2,3,0,0,0,5,0,0)
data=data.frame(aid,foson,fosof)
Nun, ich brauche eine neue Variable (Spalte) benannte Daten $ hist mit den folgenden Bedingungen zu schaffen:
if foson==0 and fosof==0, then hist = 0;
if foson >=1 and fosof==0, then hist = 1;
if foson==0 and fosof>=1, then hist = 2; and
if foson>=1 and fosof>=1, then hist = 3
Ich habe versucht, die „ifelse“ Funktion zu verwenden, fiel aber kurz.
Ich hoffe, dass die Frage klar genug ist.
Vielen Dank für all die Hilfe,
Bazon
Lösung
Die Lösung von Ramnath ist ausgezeichnet, aber es mit ifelse
zu tun, könnten Sie es auf diese Weise tun:
data$hist <- ifelse(data$foson>=1,ifelse(data$fosof>=1,3,1),ifelse(data$fosof>=1,2,0))
Dies würde jedoch bedeuten, dass, wenn ein foson
oder fosof
<1
sind, würde es die Option für ==0
wählen, aber es scheint, aus Ihren Daten dies kein Problem sein würde.
Andere Tipps
Eine mögliche Lösung ist die folgende
zu tundata$hist = (data$foson >=1) + (data$fosof >=1)*2
Dies sollten Sie das gewünschte Ergebnis.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow