首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中所有列按组进行的相同操作(除法)

R中所有列按组进行的相同操作(除法)
EN

Stack Overflow用户
提问于 2021-12-06 17:43:47
回答 1查看 33关注 0票数 1

我有一个类似于圣诞的数据集

代码语言:javascript
复制
Christmas <- data_frame(month = c("1", "1", "2", "2"), 
                 NP = c(2, 3, 3, 1),
                 ND = c(4, 2, 0, 6),
                 NO = c(1, 5, 2, 4),
                 variable = c("mean", "sd", "mean", "sd"))

我想按月计算每一列的t统计量。我想使用的t-统计量的公式是t-统计=平均值/sd。(注意事项:我想计算所有列(在本例中,它们仅为NP、ND和NO)列)。

新的数据集将类似于t_statistics

代码语言:javascript
复制
t_statistic <- data_frame(
  month = c("1", "2"), 
  NP = c(2/3, 3),
  ND = c(4/2, 0),
  NO = c(1/5, 2/4)
  )

有线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-06 17:47:21

如果我们已经创建了mean/sd值,那么它就是被last除以的first元素(因为每个组只有两行)

代码语言:javascript
复制
library(dplyr)
out <- Christmas %>% 
    group_by(month) %>% 
    summarise(across(NP:NO,  ~first(.)/last(.)))

-output

代码语言:javascript
复制
out
# A tibble: 2 × 4
  month    NP    ND    NO
  <chr> <dbl> <dbl> <dbl>
1 1     0.667     2   0.2
2 2     3         0   0.5

带OP输出的-checking

代码语言:javascript
复制
> identical(t_statistic, out)
[1] TRUE

或者如果mean/sd没有被命令

代码语言:javascript
复制
Christmas %>%
   arrange(month, variable) %>%
   group_by(month) %>%
   summarise(across(NP:NO,  ~first(.)/last(.)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70249652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档