Hi, On Thu, May 31, 2012 at 12:49 PM, Christopher Kelvin <chris_kelvin2...@yahoo.com> wrote: > Hello, > Sorry for reply you directly but i feel that if i send to R they might not > post because they may not understand what i am trying to say > I want to provide you with the code below by using the survival package, that > might make sense to you than all these codes i am confusing myself with.
But treating me as your personal R guru is a less-optimal solution than asking the entire list. Someone else might understand your problem; I certainly don't. > I have say some values represented by r which i record for the first time i > am conducting my study for each individual, 15 people > i have another set of data that i refer to as the stop time of my study > represented by t. Now what i have is two set of data say [1 2], [3 4] that is > numeric values. So you have actual measured data for start time and stop time? What do those look like? > To get my desired output i require that the number of start time be equal to > the number of end time. That seems unlikely. > So at the end i need a data that has lower values in the left and upper > values in the right. What do your recorded data look like, and what does your intended output look like? > > library(survival) > p1<-1.2;b<-1.5;n<-15 > r<-runif(n,min=0,max=b) > t<-rweibull(n,shape=p1,scale=b) > w=Surv(r,t+r,type="interval2") So r and t+r are equivalent to your recorded data, and w is your desired output? Comments would be helpful. Then why can't you use this method to process your own data? Sarah > > Thank you > Chris > > > > ----- Original Message ----- > From: Sarah Goslee <sarah.gos...@gmail.com> > To: Christopher Kelvin <chris_kelvin2...@yahoo.com>; r-help > <r-help@r-project.org> > Cc: > Sent: Thursday, May 31, 2012 11:19 PM > Subject: Re: [R] problem with ifelse > > Hi, > > On Thu, May 31, 2012 at 10:09 AM, Christopher Kelvin > <chris_kelvin2...@yahoo.com> wrote: >> Hello Sarah, >> I hope i have understood you; All i seek to do is to get a code that i can >> obtain interval censoring from without using the survival package. Can you >> come to my aid? > > Probably, but you need to meet me halfway. > > What do your inputs look like? > > What do your desired outputs look like? > > First, state them in plain English: my input is a vector of numeric > values. In my desired output, this sort of value is changed to this > number. > > Then provide that in R form. Here's an example input. Here's what I > want the output to look like. > > I'm good at writing R code, but I'm not interested in wading through > your non-working code to figure out what you meant. Please read the > posting guide, and please send your replies back to the whole list and > not just me. > > Sarah > >> Thank you >> Chris >> >> >> >> >> >> >> >> ----- Original Message ----- >> From: Sarah Goslee <sarah.gos...@gmail.com> >> To: Christopher Kelvin <chris_kelvin2...@yahoo.com>; r-help >> <r-help@r-project.org> >> Cc: >> Sent: Thursday, May 31, 2012 3:51 AM >> Subject: Re: [R] problem with ifelse >> >> Since your code has things like this: >> z<-numeric(length(t (( >> >> either you have a serious problem with your email client or you need >> to reread some introductory material and take a hard look at your >> code. >> >> Also note that g() doesn't work, because it contains the statement >> return(m) but m is undefined within g(). >> >> Meanwhile, you could provide what I asked: a statement of what you >> expect your code to produce given particular input. Otherwise how >> would we know if we've offered the right solution, since your function >> doesn't work? Using set.seed() would be a useful component of this >> reproducible example. >> >> Without having a working if poorly-written function to go by or a >> clear results statement, I'm not interested in trying to rewrite your >> code. But some thoughts: >> >> Here's a new version of f(). >> >> f2 <- function(c1, c2) { >> r <- pmax(c1 + c2, c1 + 0.5) >> cbind(c1, r) >> } >> >> It looks like you expected f() to be able to take vectors, but in g() >> you only return one value. Is that a mistake, or what you wanted? >> Since you're also using cbind(), I assume it's a mistake. >> >> Again, there are lots of problems here that suggest that you are >> coming from some other programming language and have not taken the >> time to learn much about R's syntax. This is easily remedied by >> reading the introduction. >> >> Sarah >> >> On Wed, May 30, 2012 at 3:32 PM, Christopher Kelvin >> <chris_kelvin2...@yahoo.com> wrote: >>> Hello Sarah, >>> Thank you for your response. Below is the complete code. My desire is to >>> obtain interval censored data through simulation to fit it on the weibull >>> distribution to estimate the parameters. I am actually not very sure of the >>> code correctness. You may try it and advice me on what to do and also about >>> it correctness if time will permit you. >>> >>> Thank you >>> >>> >>> g<-function(c1,c2) { >>> f<-function(c1,c2) { >>> u<-c1 >>> h<-c1+c2 >>> k<-c1+0.5 >>> r<-numeric (length(c1)) >>> for(i in 1:length(r)) r[i]<-max(h[i],k[i]) >>> return( cbind (u,r))} >>> r1<-f(c1,c2) >>> r2<-f(r1[2],r1[1]) >>> r3<-f(r2[2],r2[1]) >>> r4<-f(r3[2],r3[1]) >>> r5<-f(r4[2],r4[1]) >>> a<-(cbind(r1[1],r2[1],r3[1],r4[1],r5[1],r5[2])) >>> return(m )} >>> c1<-runif(1,0,1.5) >>> c2<-runif(1,0,0.5) >>> m<-g(c1,c2) >>> >>> tdata<-rweibull(25,0.8,1.5) >>> v<-c(0,m,999) >>> >>> y<-function(t,v){ >>> z<-numeric(length(t (( >>> s<-numeric(length(t (( >>> for(i in 1:length(t)){ >>> for(j in 1:length(v-1)) >>> { ifelse ((t[i]>v[j] & t< v[j+1] ),{z[i]<-v[j];s[i]<-v[j+1]},NA)}} >>> return(cbind(z,s))} >>> >>> y(t,v) >>> >>> >>> >>> >>> Chris Kelvin >>> >>> >>> >>> >>> >>> >>> >>> Hi, >>> >>> The error with ifelse() seems to be that you have no idea what ifelse() >>> does. >>> >>> As far as I can tell, you tried to construct code that does something like >>> this: >>> >>> >>> y<-function(tdata,v){ >>> z <- rep(NA, length(tdata)) >>> s <- z >>> for(i in 1:length(tdata)) { >>> for(j in 1:length(v-1)) { >>> if(tdata[i] > v[j] & tdata[i] < v[j+1]) { >>> z[i]<-v[j] >>> s[i]<-v[j+1] >>> } >>> } >>> } >>> return(cbind(z,s)) >>> } >>> >>> But what's with all the (( instead of ))? >>> >>> And are you certain that the logic in the if statement is correct? >>> >>> If you tell us what you expect the results to be for given input >>> values, we can help with that part too. Including making this more >>> Rish: the nested for-loop construct is entirely unnecessary here, but >>> I'm disinclined to rewrite it unless I actually know what you're >>> trying to achieve. >>> >>> Incidentally, your example is only nearly-reproducible, since we don't >>> know what m is. >>> >>> Sarah >>> >>> On Wed, May 30, 2012 at 10:01 AM, Christopher Kelvin >>> <chris_kelvin2...@yahoo.com> wrote: >>>> Dear all, >>>> The code below is used to generate interval censored data but >>>> unfortunately there is an error with the ifelse which i am not able to >>>> rectify. >>>> Can somebody help correct it for me. >>>> Thank you >>>> >>>> >>>> t<-rexp(20,0.2) >>>> v<-c(0,m,999) >>>> >>>> y<-function(t,v){ >>>> z<-numeric(length(t (( >>>> s<-numeric(length(t (( >>>> for(i in 1:length(t)){ >>>> for(j in 1:length(v-1)) >>>> { ifelse ((t[i]>v[j] & t< v[j+1] ),{z[i]<-v[j];s[i]<-v[j+1]},NA)}} >>>> return(cbind(z,s))} >>>> >>>> y(t,v) > -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ 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.