[R] sum two columns with same value
Gabor Grothendieck
ggrothendieck at gmail.com
Sat Oct 17 15:38:38 CEST 2009
Here are a few ways:
Here are a few ways:
# 1. using merge
m <- merge(snag_totale, log_totale, all = TRUE)
m[is.na(m)] <- 0
with(m, data.frame(AREA, sum = snag_ha + log_ha))
# 2. Use fact that AREA = 1:7 in log_totale
sum_totale <- log_totale; names(sum_totale)[2] <- "sum"
sum_totale$sum[snag_totale$AREA] <-
log_totale$log_ha[snag_totale$AREA] + snag_totale$snag_ha
# 3. using merge.zoo
# merge.zoo's fill=0 argument makes zero filling easier
library(zoo)
snag_zoo <- read.zoo(snag_totale)
log_zoo <- read.zoo(log_totale)
z <- merge(snag_zoo, log_zoo, all = TRUE, fill = 0)
# produce zoo object:
z$snag_zoo + z$log_zoo
# or produce data frame:
data.frame(AREA = time(z), sum = coredata(z$snag_zoo + z$log_zoo))
On Sat, Oct 17, 2009 at 3:36 AM, Alfredo Alessandrini
<alfreale74 at gmail.com> wrote:
> Hi,
>
> I've two dataframe:
>
>> snag_totale
> AREA snag_ha
> 1 2 1.628128
> 2 3 10.274249
> 3 4 2.778503
> 4 5 73.764307
> 5 7 12.015985
>> log_totale
> AREA log_ha
> 1 1 22.29846
> 2 2 17.16889
> 3 3 48.80377
> 4 4 144.18996
> 5 5 70.30962
> 6 6 61.81850
> 7 7 13.24876
>>
>
> How can I obtain a new data.frame, by the sum of value "snag_ha" +
> "log_ha" in the same "AREA"?
>
> Like this:
>
> AREA sum
> 1 1 22.29846
> 2 2 18.79702
> 3 3 59.07801
> 4 4 146.96847
> 5 5 144.07392
> 6 6 61.81850
> 7 7 25.26474
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list