मेरे पास कुछ गुम मूल्यों के साथ डेटा की 2-आयामी सरणी है।आर में दो-आयामी इंटरपोलेशन, बिना किसी एक्सट्रापोलेशन
- एक्स
- y
- तीव्रता
मैं एक रंग पैमाने के रूप में तीव्रता के साथ, ggplot2 में y के खिलाफ एक्स प्लॉट कर सकते हैं: वहाँ तीन स्तंभ हैं।
मैं रंग के बीच संक्रमण चिकनी करना चाहते हैं, और idw
समारोह सामने आने वाले gstat
पैकेज से,। idw
का उद्देश्य 2-आयामों में एनएएस को अलग करना है। यह पूर्वानुमान नहीं करना चाहिए, और जब यह तकनीकी रूप से डेटा (दोनों दिशाओं में ± 20) की सीमा का सम्मान करता है, यह भी साजिश के किनारे पर अंतराल को भरने के लिए एक प्रयास, जैसा कि नीचे देखा बनाता है:
मैं पहले आंकड़े में दिखाए गए डेटा के निचले दाएं समेत मेरे पास मौजूद डेटा की सीमाओं के बाहर होने वाले किसी भी एक्सट्रापोलेशन से बचना चाहता हूं।
मैं इसे कैसे प्राप्त कर सकता हूं?
संपादित करें: यहां एक उदाहरण डेटासेट है। जैसा कि ऊपर दिखाया गया है, यह बिल्कुल वही डेटासेट नहीं है, लेकिन इसमें निचले-दाएं कोने में एक बड़ा लापता क्षेत्र है।
structure(list(x = c(10L, 15L, -10L, 0L, -5L, -10L, -15L, 0L,
-15L, 15L, 5L, 10L, -20L, -5L, -15L, -15L, -5L, 5L, 20L, -20L,
-15L, 20L, -15L, 5L, -5L, -20L, -5L, 15L, 0L, 0L, 15L, 10L, 0L,
20L, -10L, 5L, 5L, 0L, 20L, 5L, -15L, 5L, -5L, -5L, -15L, -10L,
-10L, -10L, -5L, -10L, 15L, 20L, 0L, 20L, -15L, 20L, -20L, -15L,
10L, 15L, 15L, -5L, 5L, 15L, 20L, 20L, -10L, -20L, -20L, 15L,
-10L, 10L, 5L, -20L, 20L, 10L, 0L, 10L, -10L, 0L, 10L, 10L, 10L,
-20L, 15L, -20L, 0L, -20L, -5L, 5L), y = c(0L, -10L, 0L, 20L,
0L, -10L, 0L, 0L, -20L, 20L, 0L, -10L, -10L, -10L, -10L, 20L,
10L, -10L, -20L, -20L, -10L, -10L, 0L, 10L, -20L, 20L, 0L, 0L,
0L, -20L, 0L, 0L, 10L, 10L, -20L, -20L, -10L, 20L, 10L, 20L,
10L, -20L, 20L, -10L, 20L, 20L, 10L, 10L, -20L, -10L, -10L, 20L,
-10L, -10L, -20L, 0L, -10L, 10L, -10L, 10L, -20L, 10L, 20L, 20L,
-20L, 20L, 0L, 10L, 10L, -20L, 20L, -20L, 10L, 0L, 0L, 10L, 10L,
-20L, -20L, -20L, 20L, 20L, 10L, 20L, 10L, -20L, -10L, 0L, 20L,
0L), intensity = c(12.9662, NA, 24.4379, 26.3923, 26.9449, 16.7372,
13.7691, 8.029, 11.922, 11.1967, 15.2792, NA, 14.4159, 20.6542,
22.0509, 17.356, 14.3841, NA, NA, 10.326, 6.0451, NA, 12.9515,
3.6745, NA, 18.1552, 9.9532, 9.9361, 7.0392, NA, 10.9814, 10.8351,
4.9017, 5.7864, 14.098, NA, NA, 6.3305, 6.4405, 49.2791, 19.9774,
NA, 25.1955, 28.5234, 20.2077, 20.3224, 12.688, 22.1371, NA,
17.5108, NA, 7.9351, NA, NA, 11.0975, 8.2349, 12.1194, 21.865,
NA, 10.7178, NA, 21.8222, 13.5971, 6.9751, NA, 8.8046, 22.0709,
14.2043, 27.8561, NA, 17.4329, NA, 7.4057, 15.2797, 1.0122, 11.1874,
35.5814, NA, 27.5919, NA, 11.8159, 15.8433, 12.297, 29.1978,
20.4151, 22.6336, NA, 16.0019, 16.9746, 10.8613)), .Names = c("x",
"y", "intensity"), row.names = c(NA, -90L), class = "data.frame")
तुम बस, ग्रिड आकार आप चाहते हैं कि वास्तविक डेटा resample सकता है NAS जहां कोई डेटा नहीं है छोड़कर। फिर, अपने आईडीडब्ल्यू आउटपुट को मास्क करने के लिए उस resampled डेटा का उपयोग करें। –
मुझे यह उत्सुक लगता है कि आपको अपने extrapolated क्षेत्र (लगभग 5, -20) में उच्च तीव्रता का एक बिंदु मिलता है। जहां तक मैं idw समझता हूं, यह नहीं होना चाहिए। –