【发布时间】:2014-04-15 16:34:59
【问题描述】:
我有一个包含数十万个字段的数据集。下面是一个简化的数据集
dataSet <- c("Plnt SLoc Material Description L.T MRP Stat Auto MatSG PC PN Freq Qty CFreq CQty Cur.RPt New.RPt CurRepl NewRepl Updt Cost ServStock Unit OpenMatResb DFStorLocLevel",
"0231 0002 GB.C152260-00001 ASSY PISTON & SEAL/O-RING 44 PD X A A A 18 136 30 29 50 43 24.88 51.000 EA",
"0231 0002 WH.112734 MOTOR REDUCER, THREE-PHAS 41 PD X B B A 16 17 3 3 5 4 483.87 1.000 EA X",
"0231 0002 WH.920569 SPINDLE MOTOR MINI O 22 PD X A A A 69 85 15 9 25 13 680.91 21.000 EA",
"0231 0002 GB.C150583-00001 VALVE-AIR MDI 64 PD X A A A 16 113 50 35 80 52 19.96 116.000 EA",
"0231 0002 FG.124-0140 BEARING 32 PD X A A A 36 205 35 32 50 48 21.16 55.000 EA",
"0231 0002 WP.254997 BEARING,BALL .9843 X 2.04 52 PD X A A A 18 155 50 39 100 58 2.69 181.000 EA"
)
我想用这个数据集创建一个数据框以供进一步计算。我遵循的方法如下:
我将数据集按空格拆分,然后重新组合。
dataSetSplit <- strsplit(dataSet, "\\s+")
标题(即第一行)正确拆分并生成 25 个字符。这可以通过 str() 函数看到。
str(dataSetSplit)
然后我打算使用以下脚本将所有行组合在一起
combinedData <- data.frame(do.call(rbind, dataSetSplit))
请注意,上面的脚本“combinedData”错误,因为拆分没有产生相等数量的字段。
要使这种方法起作用,所有字段必须正确拆分为 25 个字段。
如果您认为这是一种合理的方法请告诉我如何将文件分成 25 个字段。
值得一提的是,我不喜欢用函数 strsplit() 分割数据集的方法。如果与大型数据集一起使用,这是一个非常耗时的步骤。 您能否推荐一种替代方法来根据提供的数据创建数据框?
【问题讨论】:
-
这看起来像是固定宽度的数据。请查看
read.fwf。 -
你最初是如何加载数据的?
-
我的答案是否停止工作?如果是这样,注释有助于解释为什么“已接受”状态被删除,从而表明此问题仍未解决。已解决的问题使 SO 成为其他试图在未来解决类似问题的人的宝贵资源。