我看起来像这样的大型凌乱数据文件:
1 2 3 4 5 6 7 8 . .
aa bb ccc d eee ffff gg h i jj
6 6 5 1 2 3 4 5i 734
33 44x 1234 12 1 9 888 345 12 987765
数据文件中的大多数(但不是全部)行具有相同数量的元素。读取此类数据文件并将其转换为矩阵或数据框的最佳方法是什么?
我一直在使用readLines
读取文件。
另外,我从对我之前的一个问题的回答中知道,可以使用以下三行将非对称列表转换为矩阵:
max.len <- max(sapply(my.data, length))
corrected.list <- lapply(my.data, function(x) {c(x, rep(NA, max.len - length(x)))})
mat <- do.call(rbind, corrected.list)
我在想也许我可以:
- 读取数据文件
readLines
- 将数据集中的每一行拆分为其单独的元素,然后
- 将整个数据集转换成一个列表,然后
- 使用上面的三行创建一个矩阵
但是,我被困在第 2 步。我无法弄清楚如何将每一行拆分为单独的元素,因为元素之间的空格数量会有所不同。此外,我怀疑提出的 4 步策略效率不高。
感谢您对这个问题的任何帮助。
编辑
对不起,我忘了发布想要的结果。我希望数据在矩阵或数据框中后看起来像这样:
1 2 3 4 5 6 7 8 . .
aa bb ccc d eee ffff gg h i jj
6 6 5 1 2 3 4 5i 734 NA
33 44x 1234 12 1 9 888 345 12 987765