4297 3

[问答] R的mean()函数的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
84 个
通用积分
0.9758
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
2535 点
帖子
63
精华
0
在线时间
131 小时
注册时间
2015-12-16
最后登录
2018-12-19

楼主
插翅膀的小老虎 学生认证  发表于 2016-3-29 04:58:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我在做coursea的作业的时候发现如果我用mean求的答案跟用普通的数学公式求的均值不同,大神能帮我看看哪里出错了吗,以下是两个程序:红色部分就是有疑问的地方,根据答案来看,第二个程序的答案才是对的
pollutantmean<- function(directory, pollutant, id=1:332) {

        total=0
        observations=0
        for (i in id){
        if (i<10){
                data<-read.csv(paste("0","0",as.character(i),".csv",sep=""),
                         header =TRUE,
                         na.strings=c("NA","NaN","")
                )
        }
        else if (i>=10 & i<100) {
                data<-read.csv(paste("0",as.character(i),".csv",sep=""),
                         header =TRUE,
                         na.strings=c("NA","NaN","")
                )
        }

        else {
                data<-read.csv(paste(as.character(i),".csv",sep=""),
                         header =TRUE,
                         na.strings=c("NA","NaN",""))
        }
data=na.omit(data)
observations = observations + nrow(data)
if (pollutant == "sulfate") { return(mean(data$sulfate))}
else {return(mean(data$nitrate))}
}

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
pollutantmean <- function(directory, pollutant, id = 1:332) {


        total = 0                        
        observations = 0                  

        for (i in id)
        {
                if (i <10) {
                        data <- read.csv(paste("0","0", as.character(i), ".csv", sep=""),  ## for example, if 'id' =7, we get 007.csv
                                         header = T,
                                         na.strings=c("NA","NaN", " "))
                }

                else if (i>=10 & i<100) {
                        data <- read.csv(paste("0", as.character(i), ".csv", sep=""),  ## for example, if 'id' = 17, we get 017.csv
                                         header = T,
                                         na.strings=c("NA","NaN", " ")
                        )
                }



                else       {
                        data <- read.csv(paste(as.character(i), ".csv", sep=""),     ## Normal
                                         header = T,
                                         na.strings=c("NA","NaN", " ")
                        )
                }

                data = na.omit(data)   
                observations = observations + nrow(data)
                if (pollutant == "sulfate") {total = total + sum(data$sulfate)}
                else {total = total + sum(data$nitrate)}
        }
       return(total/observations)

}


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:mean Course 哪里出错了 tmean 红色部分 R语言

specdata.zip
下载链接: https://bbs.pinggu.org/a-2000865.html

2.81 MB

所用数据

沙发
cmwei333 发表于 2016-3-29 07:22:19
结果应该是一样的,如果你能把数据放上来,或者发消息给我,就可以试一下,从表面上看不出来有什么不同

藤椅
插翅膀的小老虎 学生认证  发表于 2016-3-29 07:59:46
cmwei333 发表于 2016-3-29 07:22
结果应该是一样的,如果你能把数据放上来,或者发消息给我,就可以试一下,从表面上看不出来有什么不同
我把那个用到的数据都放到上面去了,答案是这样的
pollutantmean("specdata", "sulfate", 1:10)
## [1] 4.064
pollutantmean("specdata", "nitrate", 70:72)
## [1] 1.706
麻烦您了

板凳
weixue19911012 发表于 2018-7-16 18:06:17
应该这样写mean(c(93,62,51,93,75,82,93,62,65,51))

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 20:49