Re: [问题] 处理资料 效能询问

楼主: memphis (让你喜欢这世界~)   2016-07-06 03:17:57
因为你的叙述不是很清楚
只知道你有10万个csv, 存在list里
list中nrow不确定, 只知道是5的倍数
然后把资料直转横
解法前面两位都写了,
我只想补充, 如果资料结构是很固定的,
请注意你loop的方向
下面的东西虽然丑, 不过loop是18 不是 nrow(N)/5
要好看的话, 用动态变量缩一缩就可以
####
library(dplyr)
data_m <- data.frame(v1=rep("6/1",5), v2=rep("a",5), v3=rep("b",5),
v4=c(12:16), v5=rep(1,5), v6=c(2:6), stringsAsFactors=F)
data_l <- lapply(1:100000, function(v){data_m})
data2 <- data_l %>% rbind_all()
ind <- seq(1,nrow(data2),5)
myV1 <- data2[ind,1]
myV2 <- data2[ind,2]
myV3 <- data2[ind,3]
myV4 <- data2[ind,4]
myV5 <- data2[ind,5]
myV6 <- data2[ind,6]
myV7 <- data2[ind+1,4]
myV8 <- data2[ind+1,5]
myV9 <- data2[ind+1,6]
myV10 <- data2[ind+2,4]
myV11 <- data2[ind+2,5]
myV12 <- data2[ind+2,6]
myV13 <- data2[ind+3,4]
myV14 <- data2[ind+3,5]
myV15 <- data2[ind+3,6]
myV16 <- data2[ind+4,4]
myV17 <- data2[ind+4,5]
myV18 <- data2[ind+4,6]
data_out <- data.frame(myV1, myV2, myV3, myV4,
myV5, myV6, myV7, myV8, myV9, myV10, myV11,
myV12, myV13, myV14, myV15, myV16, myV17, myV18, stringsAsFactors=F)
※ 引述《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
: [关键字]:
作者: spiderway (spiderway)   2016-07-07 20:14:00
谢谢M大给予指导~ 不过之前到是没用过动态变量这种该研究研究惹

Links booklink

Contact Us: admin [ a t ] ucptt.com