Если вы хотите третий столбец файла, который имеет заголовки и разделитель запятых:
d <- read.table("file.dat", colClasses = c("NULL", "NULL", "numeric", "NULL"), sep = ",")
Замените «числовой» на другой класс в зависимости от ситуации - и столько «NULL», сколько требуется для описания каждого столбца в файле.
Чтобы получить каждый файл с именем "* .dat" в текущем каталоге:
fs <- list.files(pattern = "dat$")
Чтобы построить матрицу из всех этих столбцов и тех же классов и количества столбцов, как указано выше:
mat <- NULL
for (i in 1:length(fs)) {
mat <- cbind(mat, read.table(fs[i], colClasses = c("NULL", "NULL", "numeric", "NULL"), sep = ",")
}
Для достаточно больших файлов данных вы должны предварительно выделить матрицу, которую вы можете узнать за один раз, прочитав один файл (и предполагая, что все они имеют одинаковое количество строк, а также структуру:
d0 <- read.table(fs[1], colClasses = c("NULL", "NULL", "numeric", "NULL"), sep = ",")[,1]
nr <- nrow(d0)
Теперь вышеприведенный цикл становится более эффективным с использованием памяти:
mat <- matrix("numeric", nrow = nr, ncol = length(fs))
for (i in 1:length(fs)) {
mat[,i] <- read.table(fs[i], colClasses = c("NULL", "NULL", "numeric", "NULL"), sep = ",")[,1]
}