Ich habe einen großen Datensatz und muss die Standardabweichung für die Spalte Main
basierend auf der Anzahl der Zeilen in anderen Spalten ermitteln. Hier ist ein Beispieldatensatz:R Bedingte Standardabweichung
df1 <- data.frame(
Main = c(0.33, 0.57, 0.60, 0.51),
B = c(NA, NA, 0.09,0.19),
C = c(NA, 0.05, 0.07, 0.05),
D = c(0.23, 0.26, 0.23, 0.26)
)
View(df1)
# Main B C D
# 1 0.33 NA NA 0.23
# 2 0.57 NA 0.05 0.26
# 3 0.60 0.09 0.07 0.23
# 4 0.51 0.19 0.05 0.26
Nehmen Spalte B
als Beispiel, da die Zeile 1 & 2 sind NA
, dessen Standardabweichung werden sd(df1[3:4,1])
; Spalte C&D
wird sd(df1[2:4,1])
und sd(df1[1:4,1])
sein. Daher wird das Ergebnis sein:
# B C D
# 1 0.06 0.05 0.12
ich das Folgende tat, aber es ergab nur eine Nummer - 0.0636
df2 <- df1[,-1]!=0
sd(df1[df2,1], na.rm = T)
Meine Datensatz viele mehr Spalten hat, und ich frage mich, ob es eine ist effizienterer Weg, um es zu erledigen? Danke vielmals!
@ T-T ist das Ihre Frage beantwortet? Beachten Sie http://stackoverflow.com/help/someone-answers –