优化具有for循环

时间:2017-09-14 07:31:26

标签: r dataframe optimization data-processing

这是我的代码,基本上我正在尝试将数据转换为宽格式,可能有也可能没有重复数据。我尝试使用for-each和parallel但仍需要更多时间,任何人都可以建议任何更改

这是我正在处理的数据: -

Param1: 1, , 753360af0c8949c0aeab64d520599656
Param2: Value2
Param3: value3
Param4: Value4
Param1: 2, , 8c8c659813d842c5bab2ddba9483ea5a
Param2: Value5
Param4: value6
Param3: Value7

所以基本上我需要一个宽格式,但上面的例子包含4个参数。该文件可以有10个不同数量的参数,因为文本文件来自不同的来源。

结果应如下所示: -

Param1                                    Param2  Param3  param4    
1 753360af0c8949c0aeab64d520599656        Value2  Value3  Value4    
2 8c8c659813d842c5bab2ddba9483ea5a        Value5  Value6  Value7

这是相同的代码: -

f <-  read.table("./Sample.txt",header = FALSE, sep = ":",fill=TRUE, row.names=NULL)

f[,2] <- paste(f[,2],f[,3],f[,4])

c <- unique(f[,1])

rw <- round(nrow(f) / length(c)) + 1

result <- data.frame(matrix(0,ncol=length(c),nrow=rw))

colnames(result) <- t(c)

wh <- which(f[,1]==c[1])

for(i in 1:(length(wh)-1)) {

  print(i)

  tmp <- f[(wh[i]:(wh[i+1]-1)),]

  result[i,] <- t(tmp[,2][match(colnames(result),tmp[,1])])



}

我有超过10,00,000行要处理,上述代码即使在一天之后也无法完成。

提前致谢

0 个答案:

没有答案