除了右边包含约120个表外,大多数表的长度不同。为了达到可复制的示例目的,请找到图像here的文件。
我正在像这样用data.table::fread
读取表:
t1 <- fread("testFread.csv", skip = 1, select = 1:2)
t2 <- fread("testFread.csv", skip = 1, select = 4:5)
但是t2
表较短,有很多空行。请注意,它们不是NA
行。它们是""
行。如果我在文本编辑器中打开.csv
文件,原因很清楚:第6行是
abr,4 ,,
这就是为什么blank.lines.skip
的{{1}}和fill
参数不起作用的原因(SO中有一些关于这些主题的问题,但是我检查过的所有问题都只处理了其中的一个表) csv)。
因此,如果要删除所有空白行,我必须这样做
fread
问题是我大约有120个表,如果我决定遵循此路径,则必须对每个表的第一列的名称进行硬编码。
我的问题是:
答案 0 :(得分:0)
您可以加载整个csv并使用一个函数来获取其中的子集。下面是在R基中完成的示例,
full_csv <- read.csv("test.csv", header = FALSE, stringsAsFactors = FALSE)
get_subset <- function(data, start, end) {
data <- data[ 2:nrow(data), start:end ]
full_row_data <- apply( data[ , names(data)], 1, paste, collapse = "" )
data[ full_row_data != "", ]
}
get_subset(full_csv, 1, 2)