[R] How to delete rows based on replicate values in one column with some extra calcuation
David Winsemius
dwinsemius at comcast.net
Tue Jun 29 05:16:11 CEST 2010
On Jun 28, 2010, at 9:30 PM, Yi wrote:
> Hi, folks,
>
> Please let me address the problem by the following codes:
>
> first=c('u','b','e','k','j','c','u','f','c','e')
> second
> =
> c
> ('usa
> ','Brazil
> ','England','Korea','Japan','China','usa','France','China','England')
> third=1:10
> data=data.frame(first,second,third)
>
> ## You may understand values in the first column are the unique
> codes for
> those in the second column.
> ####So 'u' is only for usa. Replicate values appear the same rows
> for the
> first and second columns.
> ### Now I want to delete replicate rows with the same values in first
> (sceond) rows
> ####and sum up values in the third column for the same values.
> with( data[!duplicated(data$first), ], tapply(third, first, sum) )
b c e f j k u
2 6 3 8 5 4 1
Cannot quite figure out how you got you supposed correct result if you
are removing duplicates. So maybe you are incorrectly stating the
problem and want:
> with( data, tapply(third, first, sum) )
b c e f j k u
2 15 13 8 5 4 8
--
David
>
> mm=melt(data,id='first')
> sum=cast(mm,first~variable,sum)
>
> ### This does not work. ><
>
> But the expected dataframe is like this:
>
> 1 u third 8
> 2 b third 2
> 3 e third 13
> 4 k third 4
> 5 j third 5
> 6 c third 15
> 8 f third 8
> Thanks in advance.
>
> Yi
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list