R_Language 板


LINE

※ 引述《clansoda (小笨)》之铭言: : 感谢各位的帮助,我目前资料读取没甚麽问题了,是後面卡关了 : 我写一个早上都没办法突破,我先把资料贴上来,因为用叙述的好像很难 : https://goo.gl/DpkiII,这是我目前用的资料 连结失效 : 要写出一个能够算出sulfate或nitrate的平均数的function : 我目前是想说用土法炼钢的方式将资料读进来然後用dplyr的函数来筛选 : 我写成这样pollutanmean<-function (directory, pollutan, id=1:332 ) { : csv_file<-vector("list",length(directory)) : for (i in seq_along(directory)) { : csv_file[[i]]<-read.csv(directory[[i]]) : } : s<-0 : do.call(rbind,csv_file)->completedata : library(dplyr) : final<-completedata %>% filter(ID==id) %>% : select("pollutan") : s+mean(final,na.rm=TRUE)->s : return(s) library(data.table) library(plyr) library(dplyr) library(magrittr) pollutanmean <- function(csvFilesLoc, pollutan, id = 1:332){ # other method for reading data # sprintf('%s/%03i.csv', csvFilesLoc, id) %>% llply(fread) %>% bind_rows %>% list.files(csvFilesLoc, full.names = TRUE, pattern = '\\.csv') %>% {llply(.[id], fread)} %>% bind_rows %>% summarise_(.dots = paste0("mean(", pollutan, ", na.rm = TRUE)")) %>% unlist %>% set_names(NULL) %>% return } # sulfate, nitrate pollutanmean('specdata', 'nitrate', 1:20) # 0.8286293 pollutanmean('specdata', 'sulfate', 70:80) # 2.712632 : 我有碰到一个问题是我想用read.csv只读我想要的CSV档案就好了 : 但是list[[id]]这样的写法会有问题,应该是里面只能放一个数字 : 假设id是1:10这样的话就会有问题,然後我就想是不是可以用for (i in seq_along(id)) seq_along是沿着id长度,所以下面要用id,要使用id[i] 不然就是直接 for (i in id) : 这样的方式去读,可是假设使用者将id填入68:70,我发现seq_along会传回1、2、3 : 这样的数字,所以我只好把所有CSV档案都读进来然後用昨天学到的do.call将所有 : 档案合并然後用filter筛选ID为使用者填入的id,接着选择sulfate或nitrate : 其中一个变数然後做平均接着传回来 : 我得到下面的error提示 : Error: All select() inputs must resolve to integer column positions. select不能用字串,请用select_ : The following do not: : * "pollutan" : In addition: Warning message: : In c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : : longer object length is not a multiple of shorter object length : 第一个我觉得是说要叫我指定变数的位置,但是我学到的select的直接放 : 我想要留下来的变数名称就好了,第二个我就真的看不懂他在写什麽了 : 想请问我中间的逻辑哪边有错,不好意思一直在同一个问题打转。 -- R资料整理套件系列文: magrittr #1LhSWhpH (R_Language) http://tinyurl.com/1LhSWhpH data.table #1LhW7Tvj (R_Language) http://tinyurl.com/1LhW7Tvj dplyr(上) #1LhpJCfB (R_Language) http://tinyurl.com/1LhpJCfB dplyr(下) #1Lhw8b-s (R_Language) tidyr #1Liqls1R (R_Language) http://tinyurl.com/1Liqls1R --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.74.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1452842512.A.F9A.html
1F:推 clansoda: 我把资料丢到googledrive上了 https://goo.gl/zJygna 01/15 15:53
测试完成
2F:推 clansoda: 大大我回在这篇文 01/15 19:50
3F:→ clansoda: 我现在写到几乎完成了 剩下for (i in id)这个环节 01/15 19:50
4F:→ clansoda: 我发现如果我这样写read.csv(path[i]) 他只会读入 01/15 19:51
5F:→ clansoda: 最後一个数字代表的CSV欸,比如id为1:10 那就只会读入 01/15 19:51
6F:→ clansoda: 010号CSV,导致最後的结果是错的,想请问for id 这种写 01/15 19:51
7F:→ clansoda: 法是对的吗? 01/15 19:51
我不知道你path放什麽,但是我确定id = 2:5; for (i in id) cat(i, '\n') 会出现 2 3 4 5 ※ 编辑: celestialgod (140.109.73.232), 01/15/2016 20:41:41







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP