楼主: Cruochu
1738 3

[问答] 函数参数如何读取指定目录 [推广有奖]

  • 3关注
  • 2粉丝

已卖:59份资源

大专生

88%

还不是VIP/贵宾

-

威望
0
论坛币
86 个
通用积分
0
学术水平
1 点
热心指数
8 点
信用等级
1 点
经验
2685 点
帖子
20
精华
0
在线时间
103 小时
注册时间
2013-8-9
最后登录
2023-6-20

楼主
Cruochu 发表于 2015-5-13 18:31:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
写在前面:本人新手,做题时遇到了些疑惑,找过相关书籍和资料,没能解决,所以来论坛问问你们。



问题
构造一个函数 f <- function(directory,pollutant,id),
其中directory是长度为1的字符向量,指明CSV文件的位置
       pollutant是长度为1的字符向量,指明CSV文件中数据的名称(pollutant1和pollutant2)
       id是正整数向量,指明CSV文件序号
       共有CSV文件100个,分别命名为001.csv、002.csv、...、100.csv
       每个CSV文件pollutant1和pollutant2下都有很多数据(包含缺失值)
那我该如何构造一个这样的函数计算相应文件中相应pollutan的均值呢?即如何构造“f”从“directory”参数中指定的目录下读取数据,并返回pollutant的平均值,忽略代码为NA的任何缺失值。



我构造的函数:
pollutantmean <- function(directory, pollutant, id = 1:100) {
  setwd("C:\\Users\\ruochu\\Desktop\\Coursera\\R Programming")     #也不知道能不能在函数中更改工作目录
  a <- list.files("specdata")                                                       #specdata是存放CSVs文件的文件夹,且里面只有这些文件
  dir <- paste("./specdata/",a,sep="")
  n <- length(id)
  merge.data <- read.csv(file = dir[id[1]], header=T, sep=",")
  if (n >= 2) {
    for (i in id[2]:id[n]) {
      data <- read.csv(file = dir, header=T, sep=",")
      merge.data <- rbind(merge.data,data)
    }  
  }
  if ("pollutant" == "pollutant1“) {
  mean(merge.data[,2],na.rm=TRUE)                                      #CSV文件中第二列即pollutant1
  } else {
  mean(merge.data[,3],na.rm=TRUE)                                      #CSV文件中第三列即pollutant1
  }
}


可是问题在于我并没有用到directory
比如要求specdata中第70、71、72号文件中polltant2的均值,即pollutantmean("specdata", "polltant2", 70:72)
题目要求其指明CSV文件的位置,我却是直接将CSV的位置即specdata文件夹给用进去了,所以我比较纠结这个directory参数到底如何指明想要的目录,请路过的们帮忙解答,谢谢!


二维码

扫码加我 拉你入群

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

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

关键词:本人新手 相关书籍 如何

沙发
Cruochu 发表于 2015-5-13 18:33:53
望路过的帮忙解答下,谢谢。本人刚接触R语言,期待到大家的指导

藤椅
Cruochu 发表于 2015-5-13 18:49:16
人工置顶

板凳
Cruochu 发表于 2015-5-13 19:34:55
哭晕了 快来帮帮吧

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

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