2012-12-12 8 views
7

तो ggplot2 में NLS का उपयोग कर एक शक्ति वक्र कोड प्लॉट करने के लिए आईएम के नीचे है:त्रुटि

Error in pred$fit : $ operator is invalid for atomic vectors 
:

mass <- c(4120,4740,5550,5610,6520,6870,7080,8500,8960,10350,10480,10550,11450,11930,12180,13690,13760,13800,14050,14700,15340,15790,15990,17300,18460,18630,18650,20050,23270,24530,25030,27540,28370,33460,33930,34450,34500) 

solv_acc <- c(2760,2990,2990,3180,3900,4010,4140,4680,4750,5330,4980,5860,5930,5570,5910,6790,6690,7020,6240,6620,6600,6860,7940,7600,8250,8530,7410,9160,9140,10300,10440,10390,11020,12640,11920,12110,12650) 

df <- data.frame(Mass=log(mass),Solv=log(solv_acc)) 

plotter <- (ggplot(df, aes(x=Mass, y=Solv)) + geom_point(shape=1) + stat_smooth(method = "nls", formula = y~i*x^z, start=list(i=1,z=0.2))) 
plotter <- plotter + labs(x = "Mass kDa" ,y = "Solvent Accessibility") 
print(plotter) 

ऊपर कोड मैं निम्नलिखित त्रुटि मिलती है चल रहा है

मुझे लगता है कि त्रुटि तब होती है जब यह predict() का उपयोग करने का प्रयास करता है?

जब मैं एक ही डेटा फ्रेम पर ggplot2 के उपयोग के बिना nls प्रदर्शन मैं क्यों मैं त्रुटि हो रही है एक त्रुटि

> nls1=nls(Solv~i*Mass^z,start=list(i=1,z=0.2),data=df) 
> predict(nls1) 
[1] 7.893393 7.997985 8.115253 8.123230 8.234519 8.273135 8.295350 8.429871 8.468550 8.574147 8.583270 8.588134 8.647895 8.677831 8.692939 8.777944 8.781648 8.783757 8.796793 8.829609 
[21] 8.860502 8.881445 8.890558 8.947512 8.994380 9.000995 9.001769 9.053953 9.161073 9.198919 9.213390 9.281841 9.303083 9.420894 9.430834 9.441670 9.442703 

किसी का कहना है सकते हैं नहीं मिलता है?

उत्तर

8

ggplot2 मेलिंग सूची पर इस प्रश्न का उत्तर question में दिया गया है। संक्षेप में,

According to the documentation for predict.nls, it is unable to create standard errors for the predictions, so that has to be turned off in the stat_smooth call. .

तो, हम मानक त्रुटियों को बंद करना होगा:

ggplot(df, aes(x=Mass, y=Solv)) + 
    stat_smooth(method="nls", formula=y~i*x^z, se=FALSE, 
       start=list(i=1,z=0.2)) + 
    geom_point(shape=1) 
+0

+1 इस समाधान ढूँढने के लिए धन्यवाद। यह मुझे परेशान था। – Andrie