R_Language 板


LINE

※ 引述《spiderway (spiderway)》之铭言: : - 问题: 当你想要问问题时,请使用这个类别 : [问题类型]: : 效能谘询(我想让R 跑更快) : [软体熟悉度]: : 入门(写过其他程式,只是对语法不熟悉) : [问题叙述]: : 大家好, : 最近因为需要要处理一些资料,虽然有写出要的东西,但是实在是跑太慢了,感觉要跑个 : 几年= =,一定是我写法不好,想来这问一下各位大大该怎个改才对,并学习一下 : 麻烦各位大大给予小鲁指导,感激不尽!!! : 程式: : 读取了全部CSV(10万多个)存在一个大大的list里面,要做的大概是把每一个list里面的 : 资料都做同一件事,就是每5笔整理成1笔,然後append在一起,如下 : 1 2 3 4 5 6 1 2 3 .... : 1 6/1 a b 12 1 2 1 6/1 a b 12 1 2 13 1 3 14 1 4 15 1 5 16 1 6 : 2 6/1 a b 13 1 3 : 3 6/1 a b 14 1 4 变成1笔>>> : 4 6/1 a b 15 1 5 : 5 6/1 a b 16 1 6 : [程式范例]: : http://pastie.org/10898589 : [版本] : R version 3.3.0 (2016-05-03) : Platform: x86_64-pc-linux-gnu (64-bit) : Running under: Ubuntu 14.04.4 LTS : [关键字]: 觉得哪里怪怪,我先附上我目前弄出来的结果 library(pipeR) library(plyr) library(dplyr) library(tidyr) # data generation (csv_files就是你的ldf) num_csv <- 1e1 num_xlvls <- 2 num_ylvls <- 2 sampleSize_csv <- 1e2 csv_files <- lapply(1:num_csv, function(i){ expand.grid(letters[1:num_xlvls], letters[1:num_ylvls], stringsAsFactors = FALSE) %>>% `[`(sample(1:nrow(.), sampleSize_csv, TRUE), ) %>>% modifyList(setNames(lapply(1:3, function(j){ sample(1:100, sampleSize_csv, TRUE) }), paste0("Var", 3:5))) %>>% tbl_df }) # append一起 csv_files_append <- lapply(csv_files, function(subdf){ nest(subdf, -Var1, -Var2) %>>% mutate(data = lapply(data, function(x){ as.matrix(x) %>>% t %>>% as.vector })) }) csv_files大概会像这样: [[1]] Source: local data frame [100 x 5] Var1 Var2 Var3 Var4 Var5 <chr> <chr> <int> <int> <int> 1 b a 62 29 94 2 a a 11 26 6 3 a a 49 83 32 4 b b 45 22 44 5 a b 83 57 3 6 b a 31 68 5 7 a a 24 79 71 8 a a 2 70 61 9 a a 93 22 93 10 a b 21 52 2 .. ... ... ... ... ... 然会有这样的data.frame num_csv个 csv_files_append会长这样: [[1]] Source: local data frame [4 x 3] Var1 Var2 data <chr> <chr> <list> 1 b a <int [84]> 2 a a <int [66]> 3 b b <int [81]> 4 a b <int [69]> 一样会有num_csv个 但是问题是你现在要怎麽把这num_csv个csv合并再一起 还是我误会你的意思,你一个csv只会有一个Var1跟一个Var2吗? 如果只有一个,那每一个csv_files_append就会大概长像这样: [[1]] Source: local data frame [4 x 3] Var1 Var2 data <chr> <chr> <list> 1 b a <int [84]> 那最後在do.call加上rbind就会像上面多个level那样... 只是每一个csv_files的Var1跟Var2都要是不同组合就是... 如果你能更完整陈述问题,我就能再看要怎麽写~~ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.232.185.160
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1467646043.A.971.html ※ 编辑: celestialgod (36.232.185.160), 07/04/2016 23:32:56
1F:推 spiderway: 谢谢C大!我用了一下是正确的,但是说那些程式码我都没 07/05 22:41
2F:→ spiderway: 用过XD 真的要好好找时间研究一下了,原来用apply差那 07/05 22:42
3F:→ spiderway: 麽多...这好快就跑好了,我现在在跑do.call(rbind,csv) 07/05 22:42
4F:→ spiderway: 跑好几个小时了还没好,这样正常吗QQ我没很会用这些fun 07/05 22:43
5F:→ celestialgod: do.call通常不会慢,资料量过大,可能是记忆体爆掉 07/06 00:27
6F:→ celestialgod: 看看记忆体使用量 07/06 00:27
7F:推 spiderway: c大 想问一下 do.call有办法看用到第几笔了吗 跑半天了 07/07 01:38
8F:→ spiderway: 记忆体使用率40% 以前几乎没用过do.call 不太熟 07/07 01:39
9F:→ spiderway: XD跑好了 但是我不太会用大大的这个包 data的list 07/07 12:54
10F:→ spiderway: 要怎转变成像一般的data.frame那样 我直接存csv不给存 07/07 12:55
11F:推 spiderway: 拜托求救了~~~只差这步 有哪里可以看这些文件的吗 谢谢 07/07 20:07
do.call看不到用到第几笔,他是一次做binding 你有三个,他就直接rbind(a, b, c) 他不是一次一组,不过记忆体没爆的情况下,做法应该就没差了 该等还是要等(摊手,改用bind_rows看看会不会有差 这里直接存csv当然会有问题,因为最後一栏不是长度为一的向量 这里就是看你最後一栏要怎麽储存了,所以可能麻烦你回一篇文章 看後续要怎麽做了,我晚一点再测试看看10万个 ※ 编辑: celestialgod (111.246.27.218), 07/07/2016 21:11:27
12F:推 spiderway: 好的 我回一篇讲清楚一点我要的 谢谢 麻烦你们了! 07/07 21:35







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灯, 水草

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

TOP