Supongamos que tengo una lista:
alist<- list(4,6,8,9)
Quiero probar si cada elemento de la lista es mayor que 7 y devolver una lista de 1 si es verdadero y 0 si es falso.
Sin embargo debo usar lapply.
lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)
Por supuesto que ninguno de estos funciona y sigo recibiendo el siguiente error.
Error: unexpected "," in "lapply(alist, if,"
Respuestas
18 para la respuesta № 1Me duele responder esto porque es muy poco correcto hacer esto. Puedes intentar ser más explícito y usar corchetes como en:
lapply(alist, function(x) if (x > 7) {1} else {0})
O el vectorizado ifelse
lapply(alist, function(x) ifelse(x > 7, 1, 0))
O lo mejor de todo:
as.numeric(alist > 7)
2 para la respuesta № 2
Otros dos:
lapply(alist > 7, as.integer)
o
lapply(alist > 7, ifelse, 1, 0)