R中

2012-09-05 39 views
1

得到一個表面的情節,我試圖從數據幀AAA獲得曲面圖:R中

j  a   m p  o   f 
13929 0.86739583 19 165.83 0.1588727 13.24444 
13930 0.63166667 19 178.19 0.6105804 12.68333 
13932 0.90212963 17 157.77 0.3345627 12.52222 
13933 0.80152778 68 146.19 0.1219885 12.35000 
13934 0.75784722 62 134.88 0.1531627 12.36667 
13935 0.57763889 66 123.80 0.4093869 12.47500 
13936 0.56201389 88 112.87 0.9095722 12.45833 
13937 0.51680556 26 102.03 0.8494420 12.37500 
13938 0.46093333 28 91.20 0.9153419 12.21111 
13939 0.16645833 24 80.30 0.8309784 12.04444 
13940 0.15451389 36 69.23 2.2847927 12.15556 
13941 0.51347222 134 57.92 2.9551087 12.42500 
13942 0.33763889 128 46.31 3.5784096 12.53333 
13943 0.12937500 38 34.33 3.7371723 12.47778 
13944 0.42760870 63 22.00 4.7831677 12.46667 
13945 0.09962121 8 9.36 4.8281897 12.30000 
13950 0.97901515 18 57.70 0.0000000 12.15833 
13951 0.85333333 14 71.07 0.0000000 12.48333 
13952 0.92811594 14 84.28 10.0444672 12.49167 
13953 0.84812500 42 97.29 7.8020987 12.51667 

我的代碼:

require(fields) 
fitx <- Tps(AAA[, 4:6], AAA$a) 
out.p <- predict.surface(fitx, xy = c(4,5)) 
plot.surface(out.p, type="p") 

但是,它不會通過運行。顯然,網格不足以代表數據,並且無法獲得predict.surface

+0

很難重現您的問題沒有'AAA'的'actrel'列。 – BenBarnes

+0

請提供錯誤信息或結果'out.p'數據。 「不通過」太含糊。 –

+0

另一個想法:如果使用'graphics :: persp'和您想要的'AAA'的子集生成曲面圖,它看起來是否合理? –

回答

4

Tps函數中,您的x矩陣是AAA[, 4:6],因此有三列。

但是在predict.surface函數中,您指定了xy = c(4,5)。傳遞給xy參數的值與您的fitx對象中的矩陣有關。由於用於創建fitxpredict.surface函數的矩陣有三列,因此不能引用第4列和第5列。相反,原始data.frame中的第4列和第5列對應fitx中的第1列和第2列。

您不妨一試:

library(fields) 
fitx <- Tps(AAA[, 4:6], AAA$a) 
out.p <- predict.surface(fitx, xy = c(1,2)) # Note the different argument passed to `xy` 
plot.surface(out.p, type="p") 
+0

非常感謝。這真的很簡單! –