NA und 0

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Selina1
Beiträge: 4
Registriert: Do Jul 01, 2021 5:35 pm

NA und 0

Beitrag von Selina1 »

Hallo liebe R Freunde

Eine Frage: Gibt es eine Möglichkeit nur bestimmte NA‘s mit 0 zu ersetzen?


Als Beispiel: Ich will nur die NA‘s mit 0 ersetzen die vor den Werten liegen, hier die ersten drei. Alle anderen NA‘s sollen so bleiben. Das möchte ich gerne auf alle Spalten anwenden (sind über 200).

Bin um jede Hilfe sehr dankbar! :)

Lieber Gruss
Selina1

Spalte1:

NA
NA
NA
1
2
3
5
7
NA
NA
9
8
7
jogo
Beiträge: 2059
Registriert: Fr Okt 07, 2016 8:25 am

Re: NA und 0

Beitrag von jogo »

Hallo Selina,

ja, geht:

Code: Alles auswählen

x <- c(NA, NA, NA, 1, 2, 3, 5, 7, NA, NA, 9, 8, 7)

r <- rle(is.na(x))
if (r$values[1]) x[1:r$lengths[1]] <- 0
Gruß, Jörg
Benutzeravatar
student
Beiträge: 549
Registriert: Fr Okt 07, 2016 9:52 am

Re: NA und 0

Beitrag von student »

Hallo Selina,

schau mal hier und/oder hier. Vielleich hilft es weiter...
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Benutzeravatar
EDi
Beiträge: 1548
Registriert: Sa Okt 08, 2016 3:39 pm

Re: NA und 0

Beitrag von EDi »

Oder sowas:

Code: Alles auswählen

x <- c(NA, NA, NA, 1, 2, 3, 5, 7, NA, NA, 9, 8, 7)
x[seq(1, min(which(!is.na(x))) - 1)] <- 0
x
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Benutzeravatar
EDi
Beiträge: 1548
Registriert: Sa Okt 08, 2016 3:39 pm

Re: NA und 0

Beitrag von EDi »

Oder funktionell um über die Spalten zu iterieren:

Code: Alles auswählen

df <- data.frame(x = c(NA, NA, NA, 1, 2, 3, 5, 7, NA, NA, 9, 8, 7))
df$y <- df$x


foo <- function(x) {
  x[seq(1, min(which(!is.na(x))) - 1)] <- 0
  x
}
foo(df$x)

apply(df, 2, foo)

Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten