在 R 中读取和过滤具有不同列数量的 .DAT 文件

read and filter a .DAT file with different column amount in R

我有一个 .dat 包含测量值的文件。其中一些数据是“损坏的”。应跳过损坏数据所在的行。包含损坏数据的行的列数超过 6 或低于 6。但是我只需要包含 6 列的行。 所以我尝试用 data.table 在 R 中读取文件 Daten2.DAT。 (see Image) 有人知道我如何跳过列数不等于 6 的行吗?

不使用 data.table::fread 读取数据,而是使用 readLines 读取数据,用逗号分隔行,然后解析行。

ncols <- 6
y <- readLines(con = "Daten2.DAT")
y <- strsplit(y, ",")
y <- lapply(y, function(line_read){
  if(length(line_read) != ncols) NULL else line_read
})
y <- y[!sapply(y, is.null)]
df1 <- do.call(rbind.data.frame, y)
names(df1) <- paste0("Col", seq_len(ncols))

这假定文件中没有第 headers 列的第一行。