2016-09-19 20 views
6

Przeczytałem wiele wypowiedzi na temat instrukcji if, ale nie byłem w stanie znaleźć odpowiedzi na mój prosty problem. Chciałbym utworzyć nową kolumnę w ramce danych "tester" w oparciu o warunek wielokrotny, jeśli instrukcja.R wiele warunków w instrukcji if

tester<- as.data.frame(matrix(data=c(seq(1,300,by=1.5)), ncol=4)) 

if (tester$V3> 200 && tester$V4>250){tester[,5] <- "one"} else tester$V5 <-NA 

To daje mi NAS dla całej kolumny, chociaż ostatnie 17 wierszy są prawdziwe dla obu przypadkach i powinny być „jeden”. Co tu się dzieje? Dziękuję za pomoc!

+10

tester $ V5 <- ifelse (tester $ V3> 200 i tester $ V4> 250, "jeden", NA) – HubertL

+0

dziękuję, że działa! dlaczego moje nie działają? – user3431218

+1

Ponieważ użyłeś && –

Odpowiedz

1

Przeczytaj ten wątek R - boolean operators && and ||.

Zasadniczo & jest wektoryzowany, to znaczy działa na każdym elemencie porównania, zwracając tablicę logiczną o tym samym wymiarze co dane wejściowe. && nie jest, zwracając jeden logiczny.

Powiązane problemy