Hi Don. The reason I want to do this is that I have the recorded infusion rate of time 1, 2, 6, 8 but I have the recorded response of time 1.5, 3, 4, 12. Notice that the time does not match between the two. Ultimately I want to plot Response VS Infusion Rate. If I just use xyplot between the two column, I'll just get a blank.
The approx() function cannot do what I want. The problem is that the data frame has data from different patients, with different patients have different response (y) when given the drug at the same infusion rate (x). If I use approx() then all the patients with the same x will return the same y. Do you have any other suggestions? Thanks! Pharavee -----Original Message----- From: MacQueen, Don [mailto:macque...@llnl.gov] Sent: Thursday, August 14, 2014 3:06 PM To: Jaiprasart, Pharavee (HSC) Cc: r-help@r-project.org; Jeff Newmiller; Bert Gunter Subject: Re: [R] Operating on the value from row i and row i+1 You didn¹t say why you want it to return 6 and 4 for times 4 and 12 respectively, so I made an assumption. On that basis, try this example: mydf <- data.frame(time=c(0,3,9), resp=c(5,6,4)) myint <- approx( mydf$time, mydf$resp, xout=c(6,12), method='constant', f=0, rule=2) It reproduces your two example desired results. print(myint) $x [1] 6 12 $y [1] 6 4 (aside) If my assumption is correct, this is an example of a case where a simple R-supplied function does the job and there¹s no need to use anything else. Simple tools for simple jobs. The approx() function has been in R since the very beginning. -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 8/14/14, 11:27 AM, "Jeff Newmiller" <jdnew...@dcn.davis.ca.us> wrote: >So for part one it seems you already have your answer. > >For part two you should look at time series types like "zoo", with >which you can merge NAs at the new times at which you want "interpolated" >answers and use the na.locf function to fill in values. >----------------------------------------------------------------------- >--- >- >Jeff Newmiller The ..... ..... Go >Live... >DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live >Go... > Live: OO#.. Dead: OO#.. Playing >Research Engineer (Solar/Batteries O.O#. #.O#. with >/Software/Embedded Controllers) .OO#. .OO#. >rocks...1k >----------------------------------------------------------------------- >--- >- >Sent from my phone. Please excuse my brevity. > >On August 14, 2014 9:39:34 AM PDT, "Jaiprasart, Pharavee (HSC)" ><pharavee-jaipras...@ouhsc.edu> wrote: >>Hi Bert, >> >>I should have phrased my question differently. >> >>I actually want to do two things. >> >>First is to make a step plot. The "s"/"S" is a typo on my part. >> >>The second is to write a script that when I ask the program for >>Response of time == 4, I want it to return "6", or if I ask for >>response of time == 12, it will return "4", and so on. >> >>Pharavee >> >> >>-----Original Message----- >>From: Bert Gunter [mailto:gunter.ber...@gene.com] >>Sent: Thursday, August 14, 2014 11:27 AM >>To: Jaiprasart, Pharavee (HSC) >>Cc: r-help@r-project.org >>Subject: Re: [R] Operating on the value from row i and row i+1 >> >>Your query is a bit unclear, but I suspect >> >>?plot >> >>and a **careful read** about types "s" and "S" therein would address >>your problem. >> >>Cheers, >>Bert >> >>Bert Gunter >>Genentech Nonclinical Biostatistics >>(650) 467-7374 >> >>"Data is not information. Information is not knowledge. And knowledge >>is certainly not wisdom." >>Clifford Stoll >> >> >> >> >>On Thu, Aug 14, 2014 at 8:07 AM, Jaiprasart, Pharavee (HSC) >><pharavee-jaipras...@ouhsc.edu> wrote: >>> Hi all, >>> >>> >>> >>> I'd like to make a step plot of Time vs Response graph. >>> >>> This is the example of my data frame - the real data frame has more >>than a thousand rows. >>> >>> >>> >>> Time Duration of infusion Infusion Rate >>Response Subtype >>> >>> 0 3 >> 2 5 0 >>> >>> 3 6 >> 3 6 0 >>> >>> 9 6 >> 4 4 0 >>> >>> >>> >>> I cannot just use type = c("s") for this because I also want to use >>the value of the in between time for further calculation too (If I ask >>the program for Response of time == 4, I want it to return "6"). >>> >>> >>> >>> The way I think the script should work is that: >>> >>> >>> >>> For all rows that has subtype ==0, if time is between the value of >>row >>> /i/ and /i+1/ (e.g. row 1 and 2 which is 0-3), make a new column >>> "Dummy" and return the value of row /i/ from the Response column >>(e.g. >>> 5 in this >>> >>> example) , and do these for all rows (e.g. any time between row 2 >>> and >> >>> 3 which is 3-9, make a new column and return 6). Then I can say if >>> Time>0 (value in column1) and <3 (value from column 1+2), y = value >>in >>> Dummy >>> >>> >>> >>> Is there any way to do this in R? >>> >>> >>> >>> Thanks! >>> >>> Pharavee >>> >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list >>> >>https://urldefense.proofpoint.com/v1/url?u=https://stat.ethz.ch/mailma >>> >>n/listinfo/r-help&k=7DHVT22D9IhC0F3WohFMBA%3D%3D%0A&r=s1Xjgqw9bK2MQxns >>> >>spJiRNsjZKIq%2B8%2Fhu084PPVY11o%3D%0A&m=wxyqWjigDlACZVtOk8tgsAt8iaUOs0 >>> >>k79BnWO1L%2FRUs%3D%0A&s=8d0ca7ccfe0e7c4bac733aa2e8fe9a7068ffcf501cb181 >>> e4261e95efc1b0e31a PLEASE do read the posting guide >>> >>https://urldefense.proofpoint.com/v1/url?u=http://www.r-project.org/po >>> >>sting-guide.html&k=7DHVT22D9IhC0F3WohFMBA%3D%3D%0A&r=s1Xjgqw9bK2MQxnss >>> >>pJiRNsjZKIq%2B8%2Fhu084PPVY11o%3D%0A&m=wxyqWjigDlACZVtOk8tgsAt8iaUOs0k >>> >>79BnWO1L%2FRUs%3D%0A&s=7ca8e5a21aa512fa8bc5669fb6f4ea587d530d4a20146fd >>> 526148d17a3d198bc and provide commented, minimal, self-contained, >>> reproducible code. >>______________________________________________ >>R-help@r-project.org mailing list >>https://urldefense.proofpoint.com/v1/url?u=https://stat.ethz.ch/mailma >>n/listinfo/r-help&k=7DHVT22D9IhC0F3WohFMBA%3D%3D%0A&r=s1Xjgqw9bK2MQxns >>spJiRNsjZKIq%2B8%2Fhu084PPVY11o%3D%0A&m=KapsT69UNIvTgB7cU%2FzF9qjl0u7v >>lfodRikcrIpl0UQ%3D%0A&s=67e8bf2791e73de4b63127d329bb86d4c97dbba4a03e97 >>4b239131baea91d77a >>PLEASE do read the posting guide >>https://urldefense.proofpoint.com/v1/url?u=http://www.r-project.org/po >>sting-guide.html&k=7DHVT22D9IhC0F3WohFMBA%3D%3D%0A&r=s1Xjgqw9bK2MQxnss >>pJiRNsjZKIq%2B8%2Fhu084PPVY11o%3D%0A&m=KapsT69UNIvTgB7cU%2FzF9qjl0u7vl >>fodRikcrIpl0UQ%3D%0A&s=2bd5a814cb6e6636a0486fe20551fc29d7087799a5944aa >>65c458edf76daea25 and provide commented, minimal, self-contained, >>reproducible code. > >______________________________________________ >R-help@r-project.org mailing list >https://urldefense.proofpoint.com/v1/url?u=https://stat.ethz.ch/mailman >/listinfo/r-help&k=7DHVT22D9IhC0F3WohFMBA%3D%3D%0A&r=s1Xjgqw9bK2MQxnssp >JiRNsjZKIq%2B8%2Fhu084PPVY11o%3D%0A&m=KapsT69UNIvTgB7cU%2FzF9qjl0u7vlfo >dRikcrIpl0UQ%3D%0A&s=67e8bf2791e73de4b63127d329bb86d4c97dbba4a03e974b23 >9131baea91d77a >PLEASE do read the posting guide >https://urldefense.proofpoint.com/v1/url?u=http://www.r-project.org/pos >ting-guide.html&k=7DHVT22D9IhC0F3WohFMBA%3D%3D%0A&r=s1Xjgqw9bK2MQxnsspJ >iRNsjZKIq%2B8%2Fhu084PPVY11o%3D%0A&m=KapsT69UNIvTgB7cU%2FzF9qjl0u7vlfod >RikcrIpl0UQ%3D%0A&s=2bd5a814cb6e6636a0486fe20551fc29d7087799a5944aa65c4 >58edf76daea25 and provide commented, minimal, self-contained, >reproducible code. ______________________________________________ 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.