R 排除零后平均主题分组数据帧
我在R中有一个数据框,包含来自多个主题(DF)的数据。如下所示: (DF): 排除零后,我需要对R 排除零后平均主题分组数据帧,r,R,我在R中有一个数据框,包含来自多个主题(DF)的数据。如下所示: (DF): 排除零后,我需要对CSF1PO中的值进行平均,并根据ID进行分组 我尝试首先使用NA替换零: DF$CSF1P0[DF$CSF1P0==0]<-NA 然而,我得到的结果是一个包含所有受试者的平均值(不包括零),而不是ID分组块(不包括零)的平均值。分组依据似乎工作不正常 任何帮助都将不胜感激 有两种稍微不同的方法: library(dplyr) dd %>% mutate(CSF1PO=replace(C
CSF1PO
中的值进行平均,并根据ID
进行分组
我尝试首先使用NA
替换零:
DF$CSF1P0[DF$CSF1P0==0]<-NA
然而,我得到的结果是一个包含所有受试者的平均值(不包括零),而不是ID
分组块(不包括零)的平均值。分组依据
似乎工作不正常
任何帮助都将不胜感激 有两种稍微不同的方法:
library(dplyr)
dd %>% mutate(CSF1PO=replace(CSF1PO,CSF1PO==0,NA)) %>%
group_by(ID) %>% summarise(avg=mean(CSF1PO,na.rm=TRUE))
(这为ID=203082提供了NaN
,因为没有非NA
值)或
(这不包括ID=203082)值
na.rm=TRUE
应在内)
即平均值(CSF1P0,na.rm=TRUE)
。此外,您不需要转换为NA,DF%>%groupby(ID)%%>%summary(平均值(CSF1PO[CSF1PO!=0])
此外,您可以使用filter
先删除0
的行(即filter(CSF1P0!=0)
),然后分组并汇总。
library(dplyr)
grouped<-group_by(DF, id)
averages<-summarize(grouped, avg=mean(CSF1P0), NA.arm=TRUE)
library(dplyr)
dd %>% mutate(CSF1PO=replace(CSF1PO,CSF1PO==0,NA)) %>%
group_by(ID) %>% summarise(avg=mean(CSF1PO,na.rm=TRUE))
dd %>% filter(CSF1PO!=0) %>%
group_by(ID) %>% summarise(avg=mean(CSF1PO))