यहाँ मैं इंगित करते हैं कि MyData के ऊपर या नीचे अपने मंझलाकैसे आर में कारक स्तर के भीतर मंझला विभाजन करना है?
### 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
वर्क्स ठीक है एक नया स्तंभ बनाते हैं। अब मैं एक ही बात करते हैं, लेकिन myFactor के प्रत्येक स्तर के भीतर मंझला विभाजन की गणना करना चाहते हैं।
मैं इस के साथ आ गया है:
#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 शामिल मैं क्या चाहते हैं। यह ए, बी, और सी कारकों के प्रत्येक तत्व को सही ढंग से वर्गीकृत करता है। हालांकि मैं एक नया स्तंभ, myDataFrame $ FactorLevelMedianSplit बनाना चाहते हैं, कि नव अभिकलन मंझला विभाजन को दर्शाता है।
आप कैसे एक उपयोगी डेटा फ्रेम स्तंभ में "द्वारा" कमांड के उत्पादन में परिवर्तित? कैसे कारक (उपयोग करने के लिए की थियरी के उदाहरण के साथ
) चतुराई से, और पर:
मैं शायद "द्वारा" कमांड आर की तरह यह करने के लिए जिस तरह से ...
अद्यतन नहीं है लगता है स्पेक्टर की पुस्तक में "एवेन्यू" समारोह की खोज, मैं इस समाधान है, जो बिना किसी अतिरिक्त संकुल की आवश्यकता है पाया है।
myDataFrame$MediansByFactor=ave(
myDataFrame$myData,
myDataFrame$myFactor,
FUN=median)
myDataFrame$FactorLevelMedianSplit = factor(
myDataFrame$myData>myDataFrame$MediansByFactor,
levels = c(TRUE, FALSE),
labels = c("Above", "Below"))
इसके लिए बेकार समाधान सुंदर है - धन्यवाद! – Amyunimus