Ich habe folgende Datenmenge:Berechnung kategorische Durchschnitt mit gefilterten Daten
A -1
A 10
B 8
D -1
A 0
A 4
B 2
C 6
Und ich will Spalte es wie folgt hinzuzufügen:
A -1 4,6
A 10 4,6
B 8 5,0
D -1 5,0
A 0 4,6
A 4 4,6
B 2 5,0
C 6 6,0
Was haben hier passiert?
Nun, ich habe Durchschnitt jeder kategorischen Buchstaben Variable berechnet, aber negative Zahlen ignoriert und dies als neue Spalten Wert gegeben.
Wenn nur negative Werte für die Kategorie I angegeben sind, wurde der Wert des Gesamtdurchschnitts angegeben (negative Werte werden ignoriert).
In SQL wäre dies mit gefilterter Gruppenfunktion gefolgt von join geschehen. In Excel wäre dies eine Bedingung vlookup. Wie mache ich das in R?
Edit:
# Create dataset
category <- c("A","A","B","D","A","A","B","C")
value <- c(-1,10,8,-1,0,4,2,6)
dataset <- data.frame(category, value)
# Calculated means
fdata <- dataset[dataset[,'value']>-1,]
aggregate(fdata[,2], list(fdata$category), mean)