相关疑难解决方法(0)

汇总/汇总每组的多个变量(例如总和,平均值)

从数据帧,是否有聚集(一个简单的方法sum,mean,max同时等c)中多个变量?

以下是一些示例数据:

library(lubridate)
days = 365*2
date = seq(as.Date("2000-01-01"), length = days, by = "day")
year = year(date)
month = month(date)
x1 = cumsum(rnorm(days, 0.05)) 
x2 = cumsum(rnorm(days, 0.05))
df1 = data.frame(date, year, month, x1, x2)
Run Code Online (Sandbox Code Playgroud)

我想同时按年和月汇总数据框中的变量x1x2变量df2.以下代码聚合x1变量,但是是否也可以同时聚合x2变量?

### aggregate variables by year month
df2=aggregate(x1 ~ year+month, data=df1, sum, na.rm=TRUE)
head(df2)
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

aggregate r dataframe r-faq data.table

143
推荐指数
6
解决办法
16万
查看次数

计算数据框中每13行的平均值

我有一个2列和3659行的数据框 df

我试图通过平均此数据框中的每10行或13行来减少数据集,所以我尝试了以下方法:

# number of rows per group
n=13
# number of groups
n_grp=nrow(df)/n
round(n_grp,0)
# row indices (one vector per group)
idx_grp <- split(seq(df), rep(seq(n_grp), each = n))

# calculate the col means for all groups
res <- lapply(idx_grp, function(i) {
  # subset of the data frame
  tmp <- dat[i]
  # calculate row means
  colMeans(tmp, na.rm = TRUE)
})
# transform list into a data frame
dat2 <- as.data.frame(res)
Run Code Online (Sandbox Code Playgroud)

但是,我不能将行数除以10或13,因为数据长度不是拆分变量的倍数.所以我不确定应该做什么(我只想要计算最后一组的平均值 - 即使少于10个元素)

我也试过这个,但结果是一样的:

df1=split(df, sample(rep(1:301, 10)))
Run Code Online (Sandbox Code Playgroud)

split r dataframe

9
推荐指数
3
解决办法
1万
查看次数

R对n列中的每n行求和

我有一个看起来像这样的data.frame:

Geotype <- c(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3)
Strategy <- c("Demand", "Strategy 1", "Strategy 2", "Strategy 3", "Strategy 4", "Strategy 5", "Strategy 6")
Year.1  <- c(1:21)
Year.2  <- c(1:21)
Year.3  <- c(1:21)
Year.4  <- c(1:21)
mydata <- data.frame(Geotype,Strategy,Year.1, Year.2, Year.3, Year.4) 
Run Code Online (Sandbox Code Playgroud)

我想总结每一年的每项战略.

这意味着我需要在数据框中的每一列下面加6行,然后跳过Demand行.然后我想对所有专栏(40年)重复这一点.

我希望输出数据框看起来像这样:

Geotype.output <- c(1, 2, 3)
Year.1.output  <- c(27, 69, 111)
Year.2.output  <- c(27, 69, 111)
Year.3.output  <- c(27, 69, 111) …
Run Code Online (Sandbox Code Playgroud)

r sum matrix

4
推荐指数
2
解决办法
1281
查看次数

标签 统计

r ×3

dataframe ×2

aggregate ×1

data.table ×1

matrix ×1

r-faq ×1

split ×1

sum ×1