Hallo zusammen,
Bis jetzt habe ich einen data.frame erstellt und diesen in das 'tidy' Tabellenformat gebracht.
ID <- c(1:28)
A <- rnorm(n=28,mean=5.5,sd=2.8)
B <- rnorm(n=28,mean=-2.5,sd=2.5)
C <- rnorm(n=28,mean=-1,sd=2.5)
D <- rnorm(n=28,mean=2,sd=2.5)
data <- data.frame(ID, A, B, C, D)
tidydata <- gather(data,treat,outcome,2:5)
Jetzt sollen aus tidydata 10% ; 20% und 30% der Werte in der Spalte outcome durch NaN ersetzen werden.
Kann mir dabei jemand helfen??
Welche Funktion eignet sich dafür?
Vielen Dank schon jetzt
In einem 'dataframe' 20% der Werte einer Spalte durch NaN ersetzen.
-
- Beiträge: 12
- Registriert: Mo Jun 15, 2020 10:42 am
Re: In einem 'dataframe' 20% der Werte einer Spalte durch NaN ersetzen.
20% aller Werte per Zufall oder stratifiziert für A, B, C,...?
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 12
- Registriert: Mo Jun 15, 2020 10:42 am
Re: In einem 'dataframe' 20% der Werte einer Spalte durch NaN ersetzen.
Ich würde gerne 10, 20 und 30 % der Werte zufällig löschen. Diese Werte möchte ich dann über eine multiple Imputation wieder auffüllen. Dafür werde ich wahrscheinlich das R Packet Amelia nutzen.
Re: In einem 'dataframe' 20% der Werte einer Spalte durch NaN ersetzen.
Code: Alles auswählen
i <- sample.int(nrow(tidydata), 0.1*nrow(tidydata)) ## oder 0.2*... oder 0.3*...
tidydata$outcome[i] <- NaN
p.s.:
Ich hätte eher NA statt NaN genommen.
-
- Beiträge: 12
- Registriert: Mo Jun 15, 2020 10:42 am
Re: In einem 'dataframe' 20% der Werte einer Spalte durch NaN ersetzen.
Super!! Vielen Dank für die schnelle Antwort!!jogo hat geschrieben: ↑Mo Jun 15, 2020 1:18 pmGruß, JörgCode: Alles auswählen
i <- sample.int(nrow(tidydata), 0.1*nrow(tidydata)) ## oder 0.2*... oder 0.3*... tidydata$outcome[i] <- NaN
p.s.:
Ich hätte eher NA statt NaN genommen.
Gruß Robert
Re: In einem 'dataframe' 20% der Werte einer Spalte durch NaN ersetzen.
Als Fußnote darf ich vielleicht noch ergänzen, dass der Befehl "gather" im Zustand "retired" ist und dass die tidyverse-Autoren empfehlen, zukünftig auf pivot_longer zu wechseln:
Das macht die Benutzung von gather nicht falsch, aber wenn Du mit R anfängst und mit dem tidyverse einsteigst, dann lohnt es sich vielleicht, gleich die aktuellere Variante zu lernen.
LG,
Bernhard
https://tidyr.tidyverse.org/articles/pivot.htmlFor some time, it’s been obvious that there is something fundamentally wrong with the design of spread() and gather(). Many people don’t find the names intuitive and find it hard to remember which direction corresponds to spreading and which to gathering. It also seems surprisingly hard to remember the arguments to these functions, meaning that many people (including me!) have to consult the documentation every time.
Das macht die Benutzung von gather nicht falsch, aber wenn Du mit R anfängst und mit dem tidyverse einsteigst, dann lohnt es sich vielleicht, gleich die aktuellere Variante zu lernen.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte