删除组类别中的观察值以计算R中的CI(第二部分)

时间:2017-04-18 17:23:21

标签: r confidence-interval

下一个我的问题是关注95%CI,即:我在数据集中有很多类别(3500),现在,有些类别的观察数量很少,所以当我尝试计算95%CI时,我得到了错误。

mydata=read.csv(cher,sep=";",dec=",")
View(mydata)
confint <- function(x) t.test(x)$conf.int 
c <- aggregate(. ~ group, data = mydata, confint) 


Error in t.test.default (x): not enough observations 'x'

如何在这个地方写字符串,这个confint函数会检测类别的缺失值并只传递它,然后计算95%CI,这些类别中有足够的obs。 谢谢你的帮助。

dput示例

price   group
900000  Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
1750000 Mercedes-Benz-AXOR-2004
900000  Peterbilt-387-2002
    Mercedes-Benz-AXOR-2004
    Peterbilt-387-2002
    Peterbilt-387-2002
    Mercedes-Benz-AXOR-2004
    Mercedes-Benz-AXOR-2004
    Peterbilt-387-2002
1100000 Peterbilt-387-2002

1 个答案:

答案 0 :(得分:0)

我找到了决定

library("psych")
mydata[[1]] = as.numeric(as.character(mydata[[1]]))
mydata$group_n = ave(mydata[[1]], mydata$group, FUN = function(x) sum(!is.na(x)))
mydata_high3<-mydata[(mydata$group_n)>4,]
confint <- function(x) t.test(x)$conf.int
confint = function(x) mean(x, na.rm = TRUE) + c(-1,1) * sd(x, na.rm = TRUE)/sqrt(sum(!is.na(x)))*1.96