2011-12-06 25 views
6

अगर यह आर में एक समोच्च के भीतर क्षेत्र caclulate के लिए संभव है मैं सोच रहा हूँमैं आर में एक समोच्च के भीतर क्षेत्र की गणना कैसे कर सकता हूं?

उदाहरण के लिए, समोच्च कि से परिणाम के क्षेत्र:

sw<-loess(m~l+d) 
mypredict<-predict(sw, fitdata) # Where fitdata is a data.frame of an x and y matrix 

contour(x=seq(from=-2, to=2, length=30), y=seq(from=0, to=5, length=30), z=mypredict) 

क्षमा करें, मैं जानता हूँ कि इस कोड को हो सकता है घबराओ अगर इसे पढ़ना बहुत मुश्किल है। कोई भी उदाहरण जहां आप मुझे दिखा सकते हैं कि आसानी से जेनरेट किए गए समोच्च के क्षेत्र की गणना कैसे करें सहायक होगी।

किसी भी मदद के लिए धन्यवाद।

+1

क्या आपका मतलब * * समोच्च के भीतर क्षेत्र है? – Phonon

+0

समोच्च परिभाषित कैसे किया जाता है (एक उदाहरण) ... आप किस क्षेत्र को चाहते हैं? यदि आपको सीमा के निर्देशांक मिलते हैं तो यह अपेक्षाकृत आसान है। – John

+0

हां। एक समोच्च के भीतर क्षेत्र। @ जॉन: मैं अपने मूल प्रश्न में एक उदाहरण संपादित करूंगा। –

उत्तर

5

धन्यवाद @DWin लिए प्रतिलिपि प्रस्तुत करने योग्य उदाहरण के लिए, और sos (मेरी पसंदीदा आर पैकेज!) और splancs के लेखकों को ...

library(sos) 
findFn("area polygon compute") 
library(splancs) 
with(clines[[9]],areapl(cbind(x,y))) 

जो आरामदायक है @DWin रूप में एक ही जवाब है, हो जाता है। (संभवतः यह वही एल्गोरिदम है, लेकिन splancs पैकेज में एक फोरट्रान दिनचर्या के भीतर कार्यान्वित किया गया है ...)

+2

मुझे बहुत अधिक श्रेय नहीं है क्योंकि मैं अभी 'सहायता (contourlInes)' पृष्ठ पर गया था और वहां उदाहरण प्राप्त किया था। @ बर्टनगस्टर बेन को चेक मार्क देने के लिए स्वतंत्र महसूस होना चाहिए। मुझे यहां पोस्ट किए गए सभी अच्छे कामों और आर-सहायता मेलिंग सूची पर बेन को कुछ हज़ार अंक दान करना चाहिए। इसी प्रकार हैडली और गैबर ग्रोथेंडिक –

+0

से मैं @DWin – Andrie

+0

@DWin और Ben से सहमत हूं: सहायता के लिए धन्यवाद! –

6

मुझे लगता है कि आप contourLines द्वारा लौटाई गई वस्तु के साथ काम कर रहे हैं। (प्रत्येक स्तर पर एक्स और वाई घटकों के साथ एक अनाम सूची।) मैं इसे आसानी से पहुंचने के स्थान में ढूंढने की उम्मीद कर रहा था, लेकिन इसके बजाय एक पीडीएफ फाइल मिली जो एक एल्गोरिदम प्रदान करता था जिसे मैं http://finzi.psych.upenn.edu/R/library/PBSmapping/doc/PBSmapping-UG.pdf देखकर अस्पष्ट रूप से याद करता हूं (पीडीएफ पेज 1 देखें, लेबल " -11- ") (जोड़ा ध्यान दें: पर विकिपीडिया लेख" बहुभुज "सर्वेयर 'फॉर्मूला की इस चर्चा का उल्लेख किया: http://www.maa.org/pubs/Calc_articles/ma063.pdf है, जो पेट (के अपने प्रयोग को सही ठहराते हैं)।)

एक उदाहरण का निर्माण:

x <- 10*1:nrow(volcano) 
y <- 10*1:ncol(volcano) 
contour(x, y, volcano); 
clines <- contourLines(x, y, volcano) 
x <- clines[[9]][["x"]] 
y <- clines[[9]][["y"]] 
level <- clines[[9]][["level"]] 
level 
#[1] 130 

स्तर == 130 पर क्षेत्र (चुना गया क्योंकि दो 130 स्तर नहीं हैं और यह किसी भी साजिश सीमाओं को पूरा नहीं करता है) तब है:

A = 0.5* abs(sum(x[1:(length(x)-1)]*y[2:length(x)] - y[1:(length(x)-1)]*x[2:length(x)])) 
A 
#[1] 233542.1 
संबंधित मुद्दे