2011-05-30 12 views
5

मुझे यादृच्छिक मानों के साथ आर कोड के साथ समस्या हो रही है। वास्तव में नहीं जानते, सरल हॉट डेक विधि का उपयोग करके उन मूल्यों को कैसे लागू करें। उदाहरण के लिए, इन आंकड़ों के साथ।गुम मूल्य - हॉट डेक पड़ोसी विधि

1 1000.24457235   NA  NA   NA   NA  11 
2 10000132 111 2502357 0.19408587 0.19373610 0.6567305 0.01454520 0.13498823  69 
3 10000388 111 4472360 0.14774927 0.14918678 0.6853377 0.05233508 0.11314044 106 
4 10000792 111 666909 0.10520063   NA  NA   NA   NA  14 
5 10002737 111 1139613 0.19944986 0.20114918 0.3564355 0.20135391 0.24106136  23 
6 10002741 111 981574 0.11573570   NA  NA   NA   NA  13 
7 10002929 111 1417192 0.08770932 0.08387991 0.6106012 0.11078473 0.19473415  24 
8 10003396 111 444966 0.19026263 0.18784110 0.5215772 0.16844381 0.12213789  24 
9 10003517 111 1230589 0.16393216 0.16358568 0.4614005 0.26670712 0.10830670  19 
10 10003546 111 760847 0.12384748   NA  NA   NA   NA  10 

5 वीं स्तंभ का उपयोग करना, निकटतम मूल्य को खोजने के लिए, और फिर उन स्थानों, जहां मूल्यों एनए हैं कि इसी तरह की प्रतिवादी के साथ भरने की जरूरत है।

धन्यवाद।

+0

कृपया अपना डेटा प्रदान करने के लिए 'dput' का उपयोग करें। और कोड उपयोग कोड बनाने के लिए आइकन '{} '(या चार रिक्त स्थान के साथ संरेखित) प्रारूपित करने के लिए, http://stackoverflow.com/editing-help भी देखें। – Marek

+0

असल में, इसे समझ नहीं आया, लेकिन, कुछ समझने के लिए बदल गया :) – Cris

+0

मैं डेटा स्वरूपण जोड़ता हूं। लेकिन जब आप नमूना डेटा पोस्ट करना चाहते हैं तो आप 'dput' कमांड का उपयोग कर सकते हैं, जैसे कि 'dput (my_data)' (या 'head (dput (my_data))'), जो सभी विवरणों के साथ आर ऑब्जेक्ट का स्ट्रिंग प्रस्तुति बनाता है। – Marek

उत्तर

6

मैंने कभी भी गर्म (या उस मामले के लिए ठंडा) डेक नमूनाकरण का उपयोग नहीं किया है। हालांकि थोड़ा गुगलिंग ने मुझे आरआरपी पैकेज में rrp.impute फ़ंक्शन का नेतृत्व किया।

यहाँ कुछ सिंथेटिक डेटा का उपयोग कर एक सरल उदाहरण है:

install.packages("rrp") 
require(rrp) 
set.seed(1) 
key <- 1:100 
## create random values 
value1 <- 10 + 2 * key + rnorm(100, 0, 10) 
## make 5 values into NAs 
missing <- sample(key, 5) 
value1[missing] <- NA 
## build a dataframe 
df <- data.frame(key, value1) 
## do a nearest neighbor hot deck interpolation 
imputed <- rrp.impute(df)$new.data 

## let's visualize this magic 
plot(df) 
points(missing, imputed$value1[missing], col="red") 

इस k = 1, जो है कि मैं क्या लगता है कि आप चाहते हैं का डिफ़ॉल्ट मान का उपयोग करता है। अंत में सुंदर तस्वीर इस तरह दिखता है:

enter image description here

लाल हलकों अध्यारोपित मान रहे हैं और आप देख सकते हैं वे केवल निकटतम पड़ोसी हैं।

+0

इंटरनेट पर खोज के बारे में: अंदर-आर में आर पैकेज प्रलेखन के माध्यम से बेहतरीन खोज इंजन है, [हॉटडेक के लिए खोजें] (http://www.inside-r.org/search/node/hotdeck) या [हॉट डेक] (http: //www.inside-r.org/search/node/hot%20deck) कुछ परिणाम देता है। – Marek

+0

Google आर के साथ लगातार बेहतर (मेरे लिए कम से कम) कर रहा है। यहां मैंने जो खोज की है: http://www.google.com/search?client=ubuntu&channel=fs&q=hot+deck+imputation+r&ie=utf-8&oe = UTF-8 –

1

अगर वहाँ एक पहले से तैयार आर पैकेज है पता नहीं है, लेकिन यह काम कर देता है:

dfr<-data.frame(c1=c(123,132,388,792,2737,2741,2929,3396,3517,3546), 
c2=c(0.244,0.194,0.47,0.105,0.199,0.115,0.087,0.190,0.163,0.123), 
c3=c(NA, 0.193,0.149, NA, 0.201, NA, 0.083,0.187,0.163,NA)) 

hdidx<-which(!is.na(dfr[,3])) 
hd<-dfr[hdidx,] 
md<-dfr[-hdidx,] 
closesthd<-sapply(md[,2], function(curval){which.min(abs(curval-hd[,2]))}) 
md[,3]<-hd[closesthd,3] 

जहां अपने मामले के लिए आवश्यक + शायद एक और दूरी मापन ले स्तंभ संख्या बदलें।

संबंधित मुद्दे