nd changes have to be detected after that year - hence we
> were using ddply to group. Your solution ran very fast as expected.
>
> AK- I have a large dataset and your solution is taking too long -
> as a matter of fact i had to kill it afte 1/2 hr on a 22K row dataset.
>
> Th
Since you mentioned this > half-hour running time, it would be good to check
your data.
?str()
A.K.
- Original Message -
From: arun
To: R help
Cc: David Winsemius
Sent: Tuesday, June 4, 2013 1:18 PM
Subject: Re: [R] Read 2 rows in 1 dataframe for diff - longitudinal data
Hi,
By co
ns.
-ST
- Original Message -
From: David Winsemius
To: arun
Cc: R help
Sent: Tuesday, June 4, 2013 11:13 AM
Subject: Re: [R] Read 2 rows in 1 dataframe for diff - longitudinal data
On Jun 3, 2013, at 9:51 PM, arun wrote:
> If it is grouped by "subid" (that wou
bid, FUN=function(x) c( FALSE, x[-1] !=
> x[-length(x)]) ) ), ]
subid year var
3 36 2003 3
7 47 2001 3
9 47 2005 1
1047 2007 3
--
David.
>
>
> - Original Message -
> From: David Winsemius
> To: arun
> Cc: R help
> Sent: Tuesday
s
> To: arun
> Cc: R help
> Sent: Tuesday, June 4, 2013 12:37 AM
> Subject: Re: [R] Read 2 rows in 1 dataframe for diff - longitudinal data
>
>
> On Jun 3, 2013, at 7:10 PM, arun wrote:
>
>> Hi,
>> May be this helps:
>> res1<-df1[with(df1,unl
al Message -
From: David Winsemius
To: arun
Cc: R help
Sent: Tuesday, June 4, 2013 12:37 AM
Subject: Re: [R] Read 2 rows in 1 dataframe for diff - longitudinal data
On Jun 3, 2013, at 7:10 PM, arun wrote:
> Hi,
> May be this helps:
> res1<-df1[with(df1,unlist(tapply(var,list
On Jun 3, 2013, at 7:10 PM, arun wrote:
> Hi,
> May be this helps:
> res1<-df1[with(df1,unlist(tapply(var,list(subid),FUN=function(x)
> c(FALSE,diff(x)!=0)),use.names=FALSE)),]
> res1
> # subid year var
> #3 36 2003 3
> #7 47 2001 3
> #9 47 2005 1
> #1047 2007 3
> #or
Hi,
May be this helps:
res1<-df1[with(df1,unlist(tapply(var,list(subid),FUN=function(x)
c(FALSE,diff(x)!=0)),use.names=FALSE)),]
res1
# subid year var
#3 36 2003 3
#7 47 2001 3
#9 47 2005 1
#10 47 2007 3
#or
library(plyr)
subset(ddply(df1,.(subid),mutate,delta=c(FALSE,di
8 matches
Mail list logo