R语言 按组排序以查找SD的问题

ttvkxqim  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(76)

我试图使用按组汇总功能来创建按组的置信区间。当我只使用平均值运行代码时,它可以工作,但当我添加代码以获取
summarize()中的错误:在参数中出现错误:N_autonomous = n(autonomous)。在组1中出现错误:yeargroup = 5。由n()中的错误引起:!未使用的参数(自治)
我运行了这个代码,希望得到每个组的SD

auto_means <- motivation %>%  
  group_by(yeargroup) %>%  
  summarize(mean_autonomous=mean(autonomous),
            sd_autonomous=sd(autonomous),
            N_autonomous= n(autonomous),
            se=sd_autonomous/sqrt(N_autonomous),
            upper_limit=mean_autonomou+se,
            lower_limit=mean_autonomou-se 
)

字符串

bvjxkvbb

bvjxkvbb1#

你会得到这个错误,因为n()返回了你分组时所依据的每个组中的个体数(即yeargroup)。所以,如果你想找到yeargroup中的个体数,只要在yeargroup分组时指定一个空参数n()。查看帮助文件了解更多细节(即?n())。

set.seed(1)
data<-data.frame(
  group=rep(1:10,times=1,each=5),
  year=rep(1:5,times=10,each=1),
  x=rnorm(50)
)
library(tidyverse)
auto_means <- data %>%  
  group_by(year) %>%  
  summarize(mean_x=mean(x),
            sd_x=sd(x),
            N_year=n(),
            se=sd_x/sqrt(N_year),
            upper_limit=mean_x+se,
            lower_limit=mean_x-se 
  )

字符串
此外,您可以始终使用length()而不是n()来获取不同组中的个体数(尽管它们应该给予相同的数字)。

set.seed(1)
auto_means <- data %>%  
  group_by(year) %>%  
  summarize(mean_x=mean(x),
            sd_x=sd(x),
            N_x=length(x) 
  )

相关问题