r - R:将带有空行的文件读入不同的data.frames
问题描述
我已经获得了一个以空行作为分隔符的表格。
像这样的东西
A 45
B 54
C 5
D 4
E 96
F 0
G 12
H 154
I 3
有没有办法将此文件读入单独的data.frames(一个在第一列中有A1、A2、A3;一个在第一列中有B1、B2、B3、B4;一个在第一列中有C1、C2 )?
编辑:我无法通过第 1 列或第 2 列来判断条目所属的位置。所以我无法读取整个文件并稍后将其拆分。
解决方案
在堆栈溢出的另一个解决方案的帮助下,我做了这个。在这种情况下,每个“表”可以有不同数量的列,如我的示例中的第三个表所示。
我觉得它可以更有效,所以欢迎提出建议。
tab <- textConnection("A 45
B 54
C 5
D 4
E 96
F 0
G 12
H 154 354
I 3 489
")
tablines <- trimws(readLines(tab))
split.vec <- function(vec, sep = 0) {
is.sep <- vec == sep
split(vec[!is.sep], cumsum(is.sep)[!is.sep])
}
splittablines <- split.vec(tablines, sep = "")
lapply(splittablines, function(x) read.table(textConnection(paste(x, collapse = "\n"))))
结果:
$`0`
V1 V2
1 A 45
2 B 54
3 C 5
$`1`
V1 V2
1 D 4
2 E 96
3 F 0
4 G 12
$`2`
V1 V2 V3
1 H 154 354
2 I 3 489
推荐阅读
- javascript - 在缩放画布时,toDataURL 仅返回画布的可见部分,而不是画布大小之外的部分
- ios - ios 为 UiTableview 安排多个操作的最佳实践
- android - NotifyDataSetChanged 没有正确更新 RecyclerView
- asp.net-core - 在控制台应用程序的 ASP.NET 核心中找不到控制器
- php - 尝试在我的论坛中创建主题时发送回 header2.php
- php - PHP 转换字符串
- php - [Route: developer.variants.store] [URI: developer/{store}/products/{products}/variants] 缺少必需参数
- fiware - Fiware 时间戳避免数字舍入
- leaflet - 如何在窗格中使用leaflet.js heat?
- c# - 实体框架“SELECT IN”不使用参数