/ / Usare lapply con se per testare ogni elemento in una lista - r, if-statement, lapply

Usando lapply con se per testare ogni elemento in una lista - r, if-statement, lapply

Supponiamo che io abbia una lista:

alist<- list(4,6,8,9)

Voglio testare se ogni elemento dell'elenco è maggiore di 7 e restituire un elenco di 1 se è vero e 0 se falso.

Comunque devo usare lapply.

lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)

Ovviamente nessuno di questi funziona e continuo a ricevere il seguente errore.

Error: unexpected "," in "lapply(alist, if,"

risposte:

18 per risposta № 1

Mi addolora rispondere a questa domanda perché è molto razionale. Puoi provare ad essere più esplicito e usare parentesi come in:

lapply(alist, function(x) if (x > 7) {1} else {0})

O il vettorizzato ifelse

lapply(alist, function(x) ifelse(x > 7, 1, 0))

O meglio di tutti:

as.numeric(alist > 7)

2 per risposta № 2

Altri due:

lapply(alist > 7, as.integer)

o

lapply(alist > 7, ifelse, 1, 0)