楼主: snowyapple
11960 39

[问答] 一个很简单的R应用问题~ [推广有奖]

  • 0关注
  • 0粉丝

大专生

68%

还不是VIP/贵宾

-

威望
0
论坛币
960 个
通用积分
0.0600
学术水平
2 点
热心指数
1 点
信用等级
1 点
经验
660 点
帖子
65
精华
0
在线时间
28 小时
注册时间
2004-12-13
最后登录
2015-7-12

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
rprog_data_specdata.zip (2.7 MB)
大家好~这里有个很简单的小问题~需要计算下这些csv文件中污染值的平均值,代码如下:
pollutantmean <- function(directory,pollutant,id=1:332){
    files_list <- dir(directory, full.names=T)
    data <- data.frame()
    for (i in 1:332){
      data <- rbind(data, read.csv(files_list))
    }
    if(pollutant=="sulfate"){
      data_subset1 <- subset(data, data$ID==id)
      mean(data_subset1$sulfate, na.rm=T)
    }
    if(pollutant=="nitrate"){
      data_subset2 <- subset(data, data$ID==id)
      mean(data_subset1$nitrate, na.rm=T)
    }
}

在RStudio上运行:pollutantmean("specdata","sulfate",20) 为什么一点反应都没有??也没有提示错误,希望得到大家帮助!谢谢~
二维码

扫码加我 拉你入群

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

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

关键词:应用问题 tmean mean poll UTA 平均值

本帖被以下文库推荐

沙发
asprine 发表于 2014-5-18 14:00:11 |只看作者 |坛友微信交流群
这不是R program上的作业么,今天截止那。

使用道具

藤椅
ywh19860616 发表于 2014-5-18 14:17:15 |只看作者 |坛友微信交流群
  1. setwd("c:\\specdata")
  2. filenames <- dir(path="c:\\specdata",pattern = "csv")
  3. filenames <- noquote(filenames)
  4. file <- list()
  5. y_sulfate <- matrix(NA,ncol=1,nrow=332)
  6. y_nitrate <- matrix(NA,ncol=1,nrow=332)
  7. for(i in 1:length(filenames)){
  8. file[[i]] <- read.csv(filenames[i])
  9. y_sulfate[i,] <- mean(file[[i]]$sulfate,na.rm = TRUE)
  10. y_nitrate[i,] <- mean(file[[i]]$nitrate,na.rm = TRUE)
  11. }
复制代码
一份耕耘,一份收获。

使用道具

板凳
asprine 发表于 2014-5-18 14:40:36 |只看作者 |坛友微信交流群
  1. pollutantmean <- function(directory,pollutant,id=1:332){
  2.     files_list <- dir(directory, full.names=T)
  3.     data <- data.frame()
  4.     for (i in 1:332){
  5.         data <- rbind(data,read.csv(files_list[i]))
  6.     }
  7.     data_subset <- subset(data, data$ID<=max(id)&data$ID>=min(id))
  8.     if(pollutant=="sulfate"){
  9.         result<-mean(data_subset$sulfate, na.rm=T)
  10.     }
  11.     if(pollutant=="nitrate"){
  12.         result<-mean(data_subset$nitrate, na.rm=T)
  13.     }
  14.     return (result)
  15. }
复制代码

使用道具

报纸
asprine 发表于 2014-5-18 14:42:29 |只看作者 |坛友微信交流群
  1. pollutantmean <- function(directory, pollutant, id=1:332) {
  2.           setwd(directory)
  3.           filenames <- dir(pattern = "csv")
  4.       n<-length(id)
  5.           m<-rep(0,n);ct<-rep(0,n);
  6.           for (i in id) {
  7.           data<-read.csv(filenames[i],header=T)
  8.           ct[match(i,id)]<-sum(!is.na(data[pollutant]))
  9.           m[match(i,id)]<-mean(as.matrix(data[pollutant]),na.rm=TRUE)}
  10.       temp<-round((m[ct>0]%*%ct[ct>0])[1,1]/sum(ct[ct>0]),digits=3)
  11.       return(temp)}
复制代码


使用道具

地板
snowyapple 发表于 2014-5-18 15:16:13 |只看作者 |坛友微信交流群
asprine 发表于 2014-5-18 14:00
这不是R program上的作业么,今天截止那。
对!感觉你好厉害~我改了一下,终于可以了,话说为什么我在RStudio上运算差不多1分钟才会出结果?

使用道具

7
asprine 发表于 2014-5-18 15:30:13 |只看作者 |坛友微信交流群
snowyapple 发表于 2014-5-18 15:16
对!感觉你好厉害~我改了一下,终于可以了,话说为什么我在RStudio上运算差不多1分钟才会出结果?
我也是在练习中,很多还不熟悉。
  1. for (i in 1:332){
  2.       data <- rbind(data,read.csv(files_list))}
复制代码
这是你原先的代码,read.csv好像不能同时读入多个文件,这里files_list有332个单元。

下面这段代码改了下,把所有的文件合并,但也需要一段时间,最后产生77万行的数据。
  1. for (i in 1:332){
  2.       data <- rbind(data,read.csv(files_list[i]))}
复制代码

使用道具

8
snowyapple 发表于 2014-5-18 17:48:02 |只看作者 |坛友微信交流群
asprine 发表于 2014-5-18 15:30
我也是在练习中,很多还不熟悉。这是你原先的代码,read.csv好像不能同时读入多个文件,这里files_list有 ...
哦~完全没有编程经验感觉太困难了,跟第一门课完全不是一个级别==话说第二题也是要先合到一个文件里么?

使用道具

9
snowyapple 发表于 2014-5-18 18:50:16 |只看作者 |坛友微信交流群
asprine 发表于 2014-5-18 15:30
我也是在练习中,很多还不熟悉。这是你原先的代码,read.csv好像不能同时读入多个文件,这里files_list有 ...
又要请教下你了,太不好意思了~下面是我写的代码:
问题是也如下:
十分抱歉啊,好多问题~请问这里哪里出了些问题呢?

12.png (28.74 KB)

12.png

123.png (9.92 KB)

123.png

12.png (28.74 KB)

12.png

使用道具

10
snowyapple 发表于 2014-5-18 19:25:17 |只看作者 |坛友微信交流群
ywh19860616 发表于 2014-5-18 14:17
非常谢谢您!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 05:09