Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:将空行文件读入不同的data.frames_R - Fatal编程技术网

R:将空行文件读入不同的data.frames

R:将空行文件读入不同的data.frames,r,R,我得到了一个以空行作为分隔符的表 像这样的 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列判断条目所属的位置。因此,我无法读取整个文件并在以后拆分它。读取整个文件。 然后用grepl过滤第一列。这将根据第一列中的字符为您提供单独的文

我得到了一个以空行作为分隔符的表

像这样的

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列判断条目所属的位置。因此,我无法读取整个文件并在以后拆分它。

读取整个文件。 然后用
grepl
过滤第一列。这将根据第一列中的字符为您提供单独的文件。

在这里关于堆栈溢出的帮助下,我制作了这个。在本例中,每个“表”可以有不同数量的列,如我的示例中的第三个表所示

我觉得这样会更有效率,所以欢迎提出建议

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"))))

您是否有任何标识符可用于跟踪每行所属的块?如果是这样,那么我可能会尝试删除空行,然后将整个内容作为单个数据帧读入,然后在R中拆分。我编辑了这个问题,因为我无法根据第一列或第二列判断条目属于哪个表。
$`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