Jestem całkiem nowy dla R i napotkałem problem z NA. Na to pytanie można było odpowiedzieć gdzie indziej, ale nie mogę znaleźć odpowiedzi. Próbuję zrobić coś odwrotnego niż rowSums()
w tym, że próbuję odjąć x2
i od x1
w celu wygenerowania x4
bez NA. Kod obecnie używam jest następująco:Odejmij wiele kolumn ignorując NA
> x <- data.frame(x1 = 3, x2 = c(4:1, 2:5), x3=c(1,NA))
> x$x4=x$x1-x$x2-x$x3
> x
x1 x2 x3 x4
1 3 4 1 -2
2 3 3 NA NA
3 3 2 1 0
4 3 1 NA NA
5 3 2 1 0
6 3 3 NA NA
7 3 4 1 -2
8 3 5 NA NA
Innymi słowy chcę ingore NA podobny do tego, jak rowSums
umożliwia na.rm=TRUE
argumentu, tak aby uzyskać ten wynik:
x1 x2 x3 x4
1 3 4 1 -2
2 3 3 NA 0
3 3 2 1 0
4 3 1 NA 2
5 3 2 1 0
6 3 3 NA 0
7 3 4 1 -2
8 3 5 NA -2
Any pomoc jest bardzo doceniana.
Dzięki, sprytne rozwiązanie! Myślałem o tym w niewłaściwy sposób ... – rmbaughman
Każdy pomysł, jak podejść do tego problemu, jeśli x1 i x2 zawierał również NA? – rmbaughman
@ user3498787 Jak chcesz obsłużyć 'NA'? Czy są traktowane jako zera (jak w mojej odpowiedzi) czy też chcesz "NA" gdzie 'x1 == NA'? – Thomas