Ben myData onun medyanR'de faktör düzeyleri içinde medyan bölünmeler nasıl yapılır? İşte
### MedianSplits based on Whole Data
#create some test data
myDataFrame=data.frame(myData=runif(15),myFactor=rep(c("A","B","C"),5))
#create column showing median split
myBreaks= quantile(myDataFrame$myData,c(0,.5,1))
myDataFrame$MedianSplitWholeData = cut(
myDataFrame$myData,
breaks=myBreaks,
include.lowest=TRUE,
labels=c("Below","Above"))
#Check if it's correct
myDataFrame$AboveWholeMedian = myDataFrame$myData > median(myDataFrame$myData)
myDataFrame
İşleri cezası altında veya üstünde olup olmadığını göstermek için yeni bir sütun olun. Şimdi aynı şeyi yapmak istiyorum, ancak myFactor'un her seviyesindeki medyan bölünmeleri hesaplamak istiyorum.
Ben bu ile geldim:
#Median splits within factor levels
byOutput=by(myDataFrame$myData,myDataFrame$myFactor, function (x) {
myBreaks= quantile(x,c(0,.5,1))
MedianSplitByGroup=cut(x,
breaks=myBreaks,
include.lowest=TRUE,
labels=c("Below","Above"))
MedianSplitByGroup
})
byOutput ne istiyorum içerir. A, B ve C faktörlerinin her bir öğesini doğru olarak sınıflandırır. Ancak, yeni hesaplanmış medyan bölünmeyi gösteren yeni bir sütun, myDataFrame $ FactorLevelMedianSplit oluşturmak istiyorum.
"By" komutunun çıktısını yararlı bir veri çerçevesi sütununa nasıl dönüştürüyorsunuz? faktörünü (nasıl kullanılacağına ilişkin Thierry'nin örnek ile
) akıllıca ve üzerine:
belki komut R benzeri Bunu yapmanın yolu ...
Güncelleme değil "tarafından" düşünmek Spector'un kitabındaki "ave" işlevini keşfetmek, ek bir paket gerektirmeyen bu çözümü buldum.
myDataFrame$MediansByFactor=ave(
myDataFrame$myData,
myDataFrame$myFactor,
FUN=median)
myDataFrame$FactorLevelMedianSplit = factor(
myDataFrame$myData>myDataFrame$MediansByFactor,
levels = c(TRUE, FALSE),
labels = c("Above", "Below"))
Bu pakete uygun çözüm güzel - teşekkürler! – Amyunimus