Bazı eksik değerleri olan 2 boyutlu bir veri dizim var.R'de iki boyutlu enterpolasyon, herhangi bir ekstrapolasyon olmadan
- x
- y
- yoğunluğu
bir renk skalası olarak yoğunluk ile, ggplot2 olarak y karşı x çizmek: Üç sütun vardır.
Ben renkler arasındaki geçişleri yumuşatmak istiyorum ve gstat
paketinden, idw
fonksiyonu rastlamak var. idw
, NA'ları 2 boyutlu olarak enterpole etmeyi amaçlar. Anlaşılmamalıdır ve teknik olarak verilerin sınırlarına (her iki yönde de ± 20) uymakla kalmaz, aynı zamanda aşağıda görüldüğü gibi, arsa kenarındaki boşlukları doldurmaya yönelik bir girişimde bulunur:
İlk resimde gösterilen verilerin sağ alt kısmı dahil olmak üzere sahip olduğum verilerin sınırları dışında meydana gelen herhangi bir ekstrapolasyondan kaçınmak istiyorum.
Bunu nasıl başarabilirim?
Edit: İşte bir örnek veri kümesi. Bu, tam olarak yukarıda gösterildiği gibi aynı veri kümesi değildir, ancak yine sağ alt köşede büyük bir eksik bölge içerir. Ne yapmaya çalışıyorsunuz anlamak ise
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")
Az önce hiçbir veriye sahip Nas bırakarak, istediğiniz ızgara boyutuna orijinal verileri resample olabilir. Ardından, IDW çıktınızı maskelemek için yeniden örneklenen verileri kullanın. –
Bulunduğunuz bölgede yüksek yoğunluklu bir noktaya rastladığınızı merak ediyorum (yaklaşık 5, -20). İddia ettiğim kadarıyla, bu olmamalı. –