在 r 中对行进行分组聚合和函数

猎鹰X

我是 r 的新手,我想汇总以下矩阵

  k  n    m    s
1 g 10 11.8  2.4
2 g 20 15.3  3.2
3 g 15  8.4  4.1
4 r 14  3.0  5.0
5 r 16  6.0  7.0
6 r  5  8.0 15.0

结果 :

  k   n          s           m
1 g   15         3.233333    7.31667 
2 r   11.66667   9           4.16667

这是我的尝试:

k <- c("g", "g", "g", "r","r","r")
n <- c(10,20,15,14,16,5)
m <- c(11.8, 15.3, 8.4,3,6,8)
s <- c(2.4, 3.2, 4.1,5,7,15)

data1 <- data.frame(k,n,m,s)

data2 <- aggregate(m ~ k, FUN = function(t) ********* , data=data1) 

我在这里对 m 更感兴趣的是序列相加第一行和第二行除以 2 ( 11.8 + 15.30) / 2 然后将结果添加到第三行并除以 3 等等。n 和 s 只是手段。

格雷戈尔·托马斯

这是你的功能:

data2 <- aggregate(
  m ~ k,
  FUN = function(t) sum(t / factorial(length(t)) * factorial(seq_along(t) - 1)),
  data=data1)
data2
#   k        m
# 1 g 7.316667
# 2 r 4.166667

这是一个不寻常的功能,它的目的是什么?

如果您想要其他列的方法,我会使用dplyr

library(dplyr)
data1 %>%
  group_by(k) %>%
  summarize(
    across(c(n, s), mean),
    across(m, ~sum(. / factorial(length(.)) * factorial(seq_along(.) - 1)))
  )
# # A tibble: 2 x 4
#   k         n     s     m
#   <chr> <dbl> <dbl> <dbl>
# 1 g      15    3.23  7.32
# 2 r      11.7  9     4.17

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对r中的行进行分组,比较和计数

对 R Markdown 表中的行进行分组

如何根据R中的某些条件和总和对多行进行分组?

在 R 中聚合顺序和分组数据

如何在R中对相似的行进行分组

根据R中的行差异对行进行分组

使用R中的函数和条件函数参数进行分组和变异

对行进行分组而不调用聚合函数

在两个数据帧之间进行T检验,并按R中的相似行进行分组

用列之间的多重条件对行进行分组,包括 R / dplyr中的排序

按 R 中的连续值对数据框行进行分组

根据列值对行进行分组,并使行的最小值保持在R中

如何在r中以列表形式对行进行分组并使其单元格关联布局?

如何在R中对具有重复名称的行进行分组?

如何对相似的行进行分组,并在 R 中查询某些行列?

R函数对满足条件的行进行计数

如何在R中的table1函数中对行进行子集化?

R根据特定列的值对行进行分组,并在其他列上保留较低和较大的值

在MySql中对行进行计数和分组

在 R 中按 2 列分组/聚合

使用Lambda函数进行分组和聚合

使用dplyr对R中不同列(和不同行位置)的行进行操作

使用R对数据框中的行进行子集和重复

如何与R中的下一行进行计算和比较

R中的排序和聚合

聚合-R中的na.omit和na.pass带因子(按因子分组)?

R dplyr:分组依据,不具有聚合函数

在R中处理聚合函数中的NA

R中按列对进行条件聚合