Załóżmy, że mam listę:
alist<- list(4,6,8,9)
Chcę przetestować, czy każdy element listy jest większy niż 7 i zwrócić listę 1, jeśli jest ona prawdziwa, a 0 - fałsz.
Jednak muszę używać lapply.
lapply(alist,if,>7,1) or lapply(alist,if,cond>7,1)
Oczywiście żaden z nich nie działa i ciągle pojawia się następujący błąd.
Error: unexpected "," in "lapply(alist, if,"
Odpowiedzi:
18 dla odpowiedzi № 1Bolesne jest, że muszę odpowiedzieć na to pytanie, ponieważ jest to bardzo nieczytelne. Możesz spróbować być bardziej jednoznacznym i użyć nawiasów, jak w:
lapply(alist, function(x) if (x > 7) {1} else {0})
Lub wektoryzacji ifelse
lapply(alist, function(x) ifelse(x > 7, 1, 0))
Lub co najlepsze:
as.numeric(alist > 7)
2 dla odpowiedzi nr 2
Kolejne dwa:
lapply(alist > 7, as.integer)
lub
lapply(alist > 7, ifelse, 1, 0)