У меня есть данные в матрице, но в них все еще много ненужной информации (из-за процесса извлечения данных из файлов mhtml).Я хочу «отфильтровать» эти вещи и «свернуть» матрицу (чтобы между данными не было пустой ячейки), чтобы после того, как я сохранил их в электронной таблице, мне не нужно было проводить дополнительную очистку (быть очень удобным, когда вам нужно сделать это для 400+ файлов).
Однако, единственный способ, которым я знаю об этом, - это использовать gsub
и удалять ненужные материалы, прежде чем я сгенерирую матрицу.
Однако, поскольку мне просто нужны определенные блоки матрицы, и я знаю, где находятся эти блоки (я могу определить это с помощью which
, чтобы получить определенную ячейку за один ряд до блока (-ов).я подумал, можно ли скопировать конкретные блоки данных, когда я знаю, где они начинаются и где они заканчиваются (фиксированный размер блоков).
Следовательно, кто-нибудь знает способ скопировать несколькоконкретные области матрицы в одну другую матрицу, когда вы знаете ячейки, где начинается блок данных, который имеет фиксированный размер (как в столбцах и строках)?
У меня есть ощущение, что я наблюдаючто-то, потому что это звучит довольно просто.
Правка говорит: тупой, я забыл пример данных (надеюсь, это сработает):
dput(var_table[1:20,1:6])
structure(c("coration:none", "", "Zeit", "kV", "-------------------------------------------------------",
"1", "2", "3", "4", "5", "6", "7", "8", "", "Phase", "Datum/Zeit",
"Stufe", "tan-delta-Mittelwert", "Standardabweichung", "Anzahl",
"color:000000\">Details:", NA, "Spannung", "mA", NA, "12:54:09",
"12:54:19", "12:54:30", "12:54:39", "12:54:49", "12:55:00", "12:55:10",
"12:55:20", NA, ".......................", "..................",
".......................", "........", "..........", "der", NA,
NA, "Strom", "E-3", NA, "5.8", "5.8", "5.8", "5.8", "5.8", "5.8",
"5.8", "5.8", NA, ":", ":", ":", ":", ":", "Messungen", NA, NA,
"tan", NA, NA, "3.07", "3.07", "3.07", "3.07", "3.07", "3.07",
"3.07", "3.07", NA, "L1", "29-09-2015", "1", "0.343", "0.001",
"........", NA, NA, "delta", NA, NA, "0.34", "0.34", "0.34",
"0.34", "0.34", "0.34", "0.34", "0.34", NA, NA, "12:55:20", NA,
"E-3", "E-3", ":", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, "8"), .Dim = c(20L, 6L))
Просто нужен блок данных из [6:13,1: 5].
Второй фрагмент данных, тот же файл:
structure(c("Phase", "Datum/Zeit", "Stufe", "tan-delta-Mittelwert",
"Standardabweichung", "Anzahl", "Last", "Prfcfobjekt", "Generator",
"", "", "Zeit", "kV", "-------------------------------------------------------",
"1", "2", "3", "4", "5", "6", "7", "8", "", "Phase", "Datum/Zeit",
"Stufe", "tan-delta-Mittelwert", "Standardabweichung", "Anzahl",
"Last", "Prfcfobjekt", "Generator", ".......................",
"..................", ".......................", "........",
"..........", "der", "........................", "VSE-Strom",
"VSE-Strom", NA, NA, "Spannung", "mA", NA, "12:56:40", "12:56:50",
"12:57:00", "12:57:10", "12:57:21", "12:57:31", "12:57:41", "12:57:51",
NA, ".......................", "..................", ".......................",
"........", "..........", "der", "........................",
"VSE-Strom", "VSE-Strom", ":", ":", ":", ":", ":", "Messungen",
":", "........", ".........", NA, NA, "Strom", "E-3", NA, "11.7",
"11.7", "11.7", "11.7", "11.7", "11.7", "11.7", "11.7", NA, ":",
":", ":", ":", ":", "Messungen", ":", "........", ".........",
"L1", "29-09-2015", "1", "0.343", "0.001", "........", "847.6",
":", ":", NA, NA, "tan", NA, NA, "6.18", "6.18", "6.18", "6.18",
"6.18", "6.18", "6.18", "6.19", NA, "L1", "29-09-2015", "2",
"0.355", "0.001", "........", "843.2", ":", ":", NA, "12:55:20",
NA, "E-3", "E-3", ":", "nF", "32", "2", NA, NA, "delta", NA,
NA, "0.35", "0.35", "0.35", "0.36", "0.36", "0.36", "0.36", "0.36",
NA, NA, "12:57:52", NA, "E-3", "E-3", ":", "nF", "66", "6", NA,
NA, NA, NA, NA, "8", NA, "b5A", "b5A", NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "8", NA,
"b5A", "b5A"), .Dim = c(32L, 6L))
Здесь мне понадобится только «Фаза» (иначе [15: 4] и [38: 4])У кого-нибудь есть идея?