/ / Uso de lapply con if para probar cada elemento en una lista - r, if-statement, lapply

Usar lapply with if para probar cada elemento en una lista - r, if-statement, lapply

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 № 1

Me 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)