Hogyan vissza sor összege értékek alapján # hiányzó értékeket megadott oszlopokat R?

szavazat
0

Próbálom, hogy végre ezt az algoritmust R:

Adatok neve: EPIC_26

Oszlopok 1-6, ha csak 1 hiányzó értékeket összegezzük a maradék 5 sorban értékek alkotnak egy másik oszlopot, ha több, mint 1 a hiányzó értékeket, vissza a hiányzó / na ennek eredményeként az adott oszlopban.

Azt feltételezik, hogy nekem kell végezni a következő kritérium, hogy az én eredményeként kiszámítja a száma hiányzó értékek soronkénti oszlopok 1-6, ha 0, összege mind a 6 értéket; ha 1, figyelmen kívül hagyja, hogy a hiányzó érték és összefoglalni az összes többi 5; mást, ha ez több, mint 1, vissza hiányzik.

Megpróbáltam is.na () függvény, de nem tudom, hogy hogyan válasszuk megadott oszlopokat az adataim. Kérem, segítsen nekem ezt a kérdést. Nagyon szépen köszönöm!

A kérdést 16/07/2018 12:13
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Én először hozzon létre egy új változót számolni az összeget NA, majd egy egyszerű ifelse()feltétel:

df <- data.frame(v1 = c(NA, 1:5),
                 v2 = c(NA, NA, 2:5),
                 v3 = c(NA, NA, NA, 3:5),
                 v4 = c(NA, NA, NA, NA, 4:5),
                 v5 = c(NA, NA, NA, NA, NA, 5),
                 v6 = rep(NA, 6)
)

> df
  v1 v2 v3 v4 v5 v6
1 NA NA NA NA NA NA
2  1 NA NA NA NA NA
3  2  2 NA NA NA NA
4  3  3  3 NA NA NA
5  4  4  4  4 NA NA
6  5  5  5  5  5 NA

df$new <- rowSums(is.na(df[1:6]))

df$new2 <- ifelse(df$new < 2, rowSums(df[1:6], na.rm = TRUE), NA)

> df
  v1 v2 v3 v4 v5 v6 new new2
1 NA NA NA NA NA NA   6   NA
2  1 NA NA NA NA NA   5   NA
3  2  2 NA NA NA NA   4   NA
4  3  3  3 NA NA NA   3   NA
5  4  4  4  4 NA NA   2   NA
6  5  5  5  5  5 NA   1   25
Válaszolt 16/07/2018 12:30
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more