【发布时间】:2020-06-05 23:08:50
【问题描述】:
我正在将 CSV 文件读入包含多个部分的 R 中,这些部分包含不同的标题、行数和列数。下面的示例表,我需要将它们分成不同的数据框,以便我可以根据部分类型处理它们。
部分的数量可以改变,到目前为止,我只知道如何对它们进行硬编码并使用 grep 将不同的部分拆分为不同的数据帧。
这些部分都采用相同的格式==XY==,其中 X 是字母,Y 是数字
有没有更好的方法将数据框拆分为每个部分的不同数据框,无论有多少部分?
z1 <- structure(list(V1 = c("==C5===", "H1", "1", "3", "8", "==E5===",
"H1", "10", "2", "==G6===", "H1", "5", "==H4===", "H1", "1",
"==H6===", "H1", "10"), V2 = c("", "H2", "9", "8", "1", "", "H2",
"4", "2", "", "", "", "", "H2", "8", "", "", ""), V3 = c("",
"H3", "2", "5", "6", "", "", "", "", "", "", "", "", "", "",
"", "", "")), class = "data.frame", row.names = c(NA, -18L))
DF1 <- z1[grep("==C5", z1$V1):grep("==E5", z1$V1),]
DF2 <- z1[grep("==E5", z1$V1):grep("==G6", z1$V1),]
DF3 <- z1[grep("==G6", z1$V1):grep("==H4", z1$V1),]
DF4 <- z1[grep("==H4", z1$V1):grep("==H6", z1$V1),]
DF5 <- z1[grep("==H6", z1$V1):nrow(z1),]
【问题讨论】: