相关疑难解决方法(0)

将矢量拆分为R中的块

我必须在R中将一个向量分成n个大小相等的块.我找不到任何基本函数来做到这一点.谷歌也没有把我带到任何地方.所以这就是我想出来的,希望它可以帮助某些人.

x <- 1:10
n <- 3
chunk <- function(x,n) split(x, factor(sort(rank(x)%%n)))
chunk(x,n)
$`0`
[1] 1 2 3

$`1`
[1] 4 5 6 7

$`2`
[1]  8  9 10
Run Code Online (Sandbox Code Playgroud)

任何评论,建议或改进都非常受欢迎和赞赏.

干杯,塞巴斯蒂安

r vector

208
推荐指数
14
解决办法
14万
查看次数

计算数据框中每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万
查看次数

每 3 行求和

我想对前 3 行的数量求和,然后对后 3 行的数量求和,依此类推。基本上,每 3 行求和。

在此处输入图片说明

下面是一个可重现的代码:

id <- 1:15
numbers <- 6:20
df <- data.frame(id, numbers)
Run Code Online (Sandbox Code Playgroud)

请帮忙,谢谢!在我的真实数据中,我需要每 550 行求和。

aggregate r dataframe

0
推荐指数
2
解决办法
133
查看次数

标签 统计

r ×3

dataframe ×2

aggregate ×1

split ×1

vector ×1