[R] (no subject)

2008-08-14 Thread Laura Cordero Llana

Hi, I am working with R and I have some doubts. I working with daily data of 
MNEE parameter for 6 years (2001:2006). What I am trying to do is to replace 
missing data for a particular period of time of a particular year, with the 
mean of that variable for the rest of the years during that given period.For 
instance if I have missing data during the period 100:1000 during the year 2002 
I want to replace that gap with the mean of the other five years. Apparently it 
is working but after running it gives an error:  Error in if (trim > 0 && n > 
0) { : missing value where TRUE/FALSE neededWhat does it mean? Because after 
doing the means there is not NA values. I attach the code I wrote. If you need 
any explanation about the variables, please tell me.
 
All my best
 
Laura
 
  
_


function(yy=NEEmonthly)
{

period1  <-c(5922:5980)
period2  <-c(6506:6787)
period3  <-c(7860:7891)
period4  <-c(8543:8608)
period5  <-c(12121:12210)
period6  <-c(13442:13561)
period7  <-c(19422:19558)
period8  <-c(19745:19853)
period9  <-c(25436:25610)
period10 <-c(25676:25755)
period11 <-c(27169:27236)
period12 <-c(27602:27666)
period13 <-c(28591:28633)
period14 <-c(28959:29058)
period15 <-c(29555:29593)
period16 <-c(31318:31364)
period17 <-c(33676:33717)
period18 <-c(39486:39762)
period19 <-c(42648:42747)
period20 <-c(42752:42831)
period21 <-c(42931:43031)
period22 <-c(43089:43370)
period23 <-c(43373:43472) 
period24 <-c(44671:44755)
period25 <-c(46635:46721)
period26 <-c(52561:53647)
period27 <-c(54405:54838)
period28 <-c(57550:57823)
period29 <-c(57979:58198) 
period30 <-c(58320:58541)
period31 <-c(59330:59498) 
period32 <-c(60310:60501) 
period33 <-c(61755:61889)
period34 <-c(63056:63191) 
period35 <-c(63245:63378) 
period36 <-c(63636:63759)
period37 <-c(63767:63906) 
period38 <-c(64719:64865)
period39 <-c(66594:66694)
period40 <-c(74672:74762)
period41 <-c(75802:75887)
period42 <-c(75888:76015) 
period43 <-c(76788:76891) 
period44 <-c(80197:80303)
period45 <-c(89872:90070) 
period46 <-c(93631:93763)
period47 <-c(94344,94439)
period48 <-c(94465:94822)
period49 <-c(95670:95830) 
period50 <-c(97658:97752)

 xtime <-B.fill$xtime
 Year <- B.fill$Year
 Month <- B.fill$Month
 MNEE <- B.fill$NEE
 periodtime <- c(2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 
2001, 2001, 2002, 2002, 2002, 2002, 2002, 2003, 2003, 2003, 2003, 2003, 2003, 
2003, 2003, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,  
2004, 2004, 2004, 2005, 2005, 2005, 2005, 2005, 2006, 2006, 2006, 2006, 2006, 
2006)   


  for (j in 1:50){

  if (periodtime[j]== 2001){
  grab.p <- get(paste("period",j,sep=""))

 for (jj in 1: length(grab.p)){

 MNEE[MNEE == MNEE[grab.p[jj]]]<- 
mean(MNEE[grab.p[jj]+17521],MNEE[grab.p[jj]+(2*17521)],MNEE[grab.p[jj]+(3*17521)],MNEE[grab.p[jj]+(4*17521)],MNEE[grab.p[jj]+(5*17521)],
 na.rm =FALSE)
 }
  } 
  print(MNEE)


  if (periodtime[j]== 2002){
  grab.p <- get(paste("period",j,sep=""))

 for (jj in 1: length(grab.p)){

 MNEE[MNEE == MNEE[grab.p[jj]]] <- 
mean(MNEE[grab.p[jj]-17521],MNEE[grab.p[jj]+17521],MNEE[grab.p[jj]+(2*17521)],MNEE[grab.p[jj]+(3*17521)],MNEE[grab.p[jj]+(4*17521)],
 na.rm =FALSE)
 }
  }
  print(MNEE)
  

  if (periodtime[j]== 2003){
  grab.p <- get(paste("period",j,sep=""))

 for (jj in 1: length(grab.p)){
 
 MNEE[MNEE == MNEE[grab.p[jj]]] <- 
mean(MNEE[grab.p[jj]-(2*17521)],MNEE[grab.p[jj]-17521],MNEE[grab.p[jj]+(1*17521)],MNEE[grab.p[jj]+(2*17521)],MNEE[grab.p[jj]+(3*17521)],
 na.rm =FALSE)
 }
  }
  print(MNEE)


  if (periodtime[j]== 2004){
  grab.p <- get(paste("period",j,sep=""))

 for (jj in 1: length(grab.p)){
 
 MNEE[MNEE == MNEE[grab.p[jj]]] <- 
mean(MNEE[grab.p[jj]-(3*17521)],MNEE[grab.p[jj]-(2*17521)],MNEE[grab.p[jj]-(1*17521)],MNEE[grab.p[jj]+(1*17521)],MNEE[grab.p[jj]+(2*17521)],
 na.rm =FALSE)
 }
  } 
  print(MNEE)


 if (periodtime[j]== 2005){
 grab.p <- get(paste("period",j,sep=""))

 for (jj in 1: length(grab.p)){

 MNEE[MNEE == MNEE[grab.p[jj]]] <- 
mean(MNEE[grab.p[jj]-(4*17521)],MNEE[grab.p[jj]-(3*17521)],MNEE[grab.p[jj]-(2*17521)],MNEE[grab.p[jj]-(1*17521)],MNEE[grab.p[jj]+(1*17521)],
 na.rm =FALSE)
 }
  }
  print(MNEE)


 if (periodtime[j]== 2006){
 grab.p <- get(paste("period",j,sep=""))

 for (jj in 1: length(grab.p)){
 
 MNEE[MNEE == MNEE[grab.p[jj]]] <- 
mean(MNEE[grab.p[jj]-(5*17521)],MNEE[grab.p[jj]-(4*17521)],MNEE[grab.p[jj]-(3*17521)],MNEE[grab.p[jj]-(2*17521)],MNEE[grab.p[jj]-(1*17521)],
 na.rm =FALSE)
 }
 }
 print(MNEE)


  }

  data.frame(xtime, Year, Month, MNEE)

}__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide

[R] nls errors

2008-08-15 Thread Laura Cordero Llana

Hi,
 
I am trying to use a non linear regresion form like: f(x) ~ 
fmax*(1-exp(-a*(x-c)).
 
> nls.NEE.fill <- nls(NEE ~ -NEE.max*(1-exp(-alpha*(PAR-I))), 
> start=list(NEE.max=-25,alpha=5,I=20))
 
I have given random values to a and c (alpha and I). But it gives my an error: 
 
Error in nlsModel(formula, mf, start) : singular gradient matrix at initial 
parameter estimates
 
 
Before that I used other nls, because I had used it for other data set and 
worked without errors. 
 
> nls.NEE.fill <- nls(NEE ~ offset + (NEE.max*PAR)/(alpha + PAR), start=list 
> (NEE.max=-25, alpha=0.5, offset=5)) 
 
But for this dataset it gives the following:
 
Error in numericDeriv(form[[3]], names(ind), env) : Missing value or an 
infinity produced when evaluating the model 
What should I do?
 
Thank you
 
All my best
 
Laura
_
¿Quieres los emoticonos y guiños más divertidos? Descárgate Interne[[elided 
Hotmail spam]]

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


[R] atomic value

2008-08-19 Thread Laura Cordero Llana

Hi all,
 
I am trying to run a code using the function "tapply", and after test it and 
see that the value is atomic, when I run the script it gives an error:
 
Error in sort(unique.default(x), na.last = TRUE) : 'x' must be atomic
for (i in 1:50){
year.name <- paste("year",i,sep="")
year.tmp <- rep(x=periodtime[i], each=length(period[i]))
assign(year.name,year.tmp)
 
grab.p <- get(paste("period",i,sep=""))
daf <- data.frame(year.name, grab.p, value=rnorm(length(year.name)))
repl <- tapply(daf$value, daf$period, mean, na.rm=T)
not <- which(is.na(daf$value))daf$value[not] <- repl[daf$period[not]]
data.frame(xtime, daf$value[not])
}
 
Where is the error if x is atomic?
 
 
All the best,
 
Laura
_


[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.