GOOGLE ADS

Mittwoch, 13. April 2022

Entfernen Sie NAs und ziehen Sie andere Werte nach oben

Ich habe eine Matrix transponiert und jetzt habe ich einen Datenrahmen, der so aussieht:

 Placebo High Medium Low
<dbl> <dbl> <dbl> <dbl>
1 0.0400 NA NA NA
2 0.04 NA NA NA
3 0.0200 NA NA NA
4 0.03 NA NA NA
5 -0.00500 NA NA NA
6 0.0300 NA NA NA
7 NA -0.04 NA NA
8 NA NA 0.0100 NA
9 NA NA NA 0.0100
10 NA NA NA 0.04

Ich möchte die NAs entfernen, damit jeder Wert steigt, und ich bekomme so etwas wie:

 Placebo High Medium Low
<dbl> <dbl> <dbl> <dbl>
1 0.0400 -0.04 0.0100 0.0100
2 0.04 0.04
3 0.0200
4 0.03
5 -0.00500
6 0.0300

Es macht nichts, wenn die Spalten nicht die gleiche Länge haben.


Lösung des Problems

Sie können nicht mit einem Datenrahmen enden, da Sie Spalten unterschiedlicher Länge haben. Sie müssen mit einer Liste enden, indem Sie Folgendes tun:

df <- read.table(text = "Index Placebo High Medium Low
1 0.0400 NA NA NA
2 0.04 NA NA NA
3 0.0200 NA NA NA
4 0.03 NA NA NA
5 -0.00500 NA NA NA
6 0.0300 NA NA NA
7 NA -0.04 NA NA
8 NA NA 0.0100 NA
9 NA NA NA 0.0100
10 NA NA NA 0.04 ", header = TRUE)
df["Index"] <- NULL
lapply(df, function(x) x[!is.na(x)])
# $Placebo
# [1] 0.040 0.040 0.020 0.030 -0.005 0.030
# $High
# [1] -0.04
# $Medium
# [1] 0.01
# $Low
# [1] 0.01 0.04

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...