Usando ifelse en R
Estoy tratando de codificar la siguiente declaración en R conif
yifelse
.Los datos de muestra son de prueba y x, y, y z son columnas de prueba).
Declaraciones a codificar
if (x>0) {
if (y>0) {
l=2
}else{
l=5
}
if (z>0) {
m=l+2
}else{
m=5
}
}
El código R usando ifelse
trial$l<-with(trial, ifelse((x>0 &y>0),2,ifelse((x>0 &y<=0),5,???)))
trial$m<-with (trial,ifelse((x>0 &z>0),l+2,ifelse((x>0 &z<=0),5,???)))
dónde,???
Especifica que no hay valores de acuerdo con la declaración anterior. En otras palabras parax<0 and y
no hay valores
A continuación, uso la combinación de if y ifelse para ver que funciona:
if(trial$z>0){
trial$l<-with(trial, ifelse(y>0,2,5))
trial$m<-with(trial, ifelse(z>0,l+2,5))
}
Este código está bien, pero hay un mensaje de advertencia (ya quez
es un vector de columna)
In if (trial$z>0){
the condition has length>1 and only the first element will be used
Quiero centrarme solo en usarifelse
ya que estoy tratando con solo vector. Pero, no tengo suerte en este sentido. ¿Alguna idea?