dplyr 中的 rowMeans 函数

标签 r dplyr

我一直在尝试在 dplyrmutate 函数中运行计算 rowMeans,但不断出现错误。下面是一个示例数据集和所需的结果。

DATA = data.frame(SITE = c("A","A","A","A","B","B","B","C","C"), 
                  DATE = c("1","1","2","2","3","3","3","4","4"), 
                  STUFF = c(1, 2, 30, 40, 100, 200, 300, 5000, 6000),
                  STUFF2 = c(2, 4, 60, 80, 200, 400, 600, 10000, 12000))

RESULT = data.frame(SITE = c("A","A","A","A","B","B","B","C","C"), 
                    DATE = c("1","1","2","2","3","3","3","4","4"), 
                    STUFF = c(1, 2, 30, 40, 100, 200, 300, 5000, 6000),
                    STUFF2 = c(2, 4, 60, 80, 200, 400, 600, 10000, 12000),
                    NAYSA = c(1.5, 3, 45, 60, 150, 300, 450, 7500, 9000))

我编写的代码首先随机采样 STUFFSTUFF2。然后我想计算 STUFFSTUFF2rowMeans 并将结果导出到新列。我可以使用 tidyr 完成此任务,但必须重做大量变量。此外,我可以使用 R 基础包,但更喜欢使用 dplyr 中的 mutate 函数找到解决方案。提前致谢。

RESULT = group_by(DATA, SITE, DATE) %>%
  mutate(STUFF=sample(STUFF,replace= TRUE), STUFF2 = sample(STUFF2,replace= TRUE))%>%
  # These approaches return errors 
  mutate(NAYSA = rowMeans(DATA[,-1:-2]))
  mutate(NAYSA = rowMeans(.[,-1:-2])) 
  mutate (NAYSE = rowMeans(.))

最佳答案

您需要 dplyr 中的 rowwise 函数来执行此操作。您的数据是随机的(由于样本),因此它会产生不同的结果,但您会看到它有效:

library(dplyr)
  group_by(DATA, SITE, DATE) %>%
  mutate(STUFF=sample(STUFF,replace= TRUE), STUFF2 = sample(STUFF2,replace= TRUE))%>%
  rowwise() %>%
  mutate(NAYSA = mean(c(STUFF,STUFF2)))

输出:

Source: local data frame [9 x 5]
Groups: <by row>

  SITE DATE STUFF STUFF2  NAYSA
1    A    1     1      2    1.5
2    A    1     2      2    2.0
3    A    2    30     80   55.0
4    A    2    30     60   45.0
5    B    3   200    600  400.0
6    B    3   300    200  250.0
7    B    3   100    600  350.0
8    C    4  5000  12000 8500.0
9    C    4  6000  10000 8000.0

如您所见,它根据 STUFF 和 STUFF2 计算每行的行平均值

关于dplyr 中的 rowMeans 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29083641/

相关文章:

r - 根据前一组计算的另一个值传播值

在 R 中使用 tidyverse 重新编码多个变量

r - 从数据帧创建字符串

r - tidygraph 和 igraph - 从数据帧差异构建图

python - Python 在 R 的包预测中是否有类似于 nnetar 的模型?

R:从嵌套列表中按名称获取元素

r - 用于配对 Wilcoxon 检验的带有 p 值的动画 fiddle /箱线图

r - 如何按组计数并查找是否至少有一个观察值符合标准?

r - 如何确定出现错误的数据点?

R:创建自定义错误消息,为包中的函数提供参数值