Trong ?read.table
được tuyên bố rằng:Thay đổi số hàng read.table sử dụng để xác định số lượng cột trong R
The number of data columns is determined by looking at the first five lines of input
(or the whole file if it has less than five lines), or from the length of col.names
if it is specified and is longer. This could conceivably be wrong if fill or
blank.lines.skip are true, so specify col.names if necessary (as in the ‘Examples’).
tôi cần phải sử dụng fill
paramenter và một số file txt của tôi có thể có hàng với số cột cao nhất sau hàng thứ 5. Tôi không thể sử dụng tiêu đề, chỉ vì tôi không có nó và col.names sẽ được xác định sau khi nhập, vì vậy tôi muốn thay đổi 5 hàng R được sử dụng trong toàn bộ tệp, (tôi không nhớ bất kỳ mất mát tốc độ nào tôi có thể nhận được). Bất kì lời đề nghị nào? Cảm ơn!
EDIT:
chỉ thấy điều này trong mã của read.table
if (skip > 0L)
readLines(file, skip)
nlines <- n0lines <- if (nrows < 0L)
5
else min(5L, (header + nrows))
lines <- .External(C_readtablehead, file, nlines, comment.char,
blank.lines.skip, quote, sep)
nlines <- length(lines)
tôi có thể chỉ cần thay đổi số 5
trong các hàng thứ 4 của mã trên? sẽ có bất kỳ tác dụng phụ nào đối với hành vi read.table
?
EDIT 2:
Tôi hiện đang sử dụng phương pháp này
maxCol <- max(sapply(readLines(filesPath), function(x) length(strsplit(x, ",")[[1]])))
có số lượng tối đa của cột, và đưa kết quả để tạo ra hình nộm col.names
như paste0("V", seq_len(maxCol))
. Bạn có nghĩ rằng vẫn còn giá trị để có một read.table
khác với khả năng chọn điều đó?
gì về nếu bạn chỉ định các cột để đọc qua 'colClasses'? –
Xin chào, điều này là. Tôi không biết trước số cột (có nhiều tệp để nhập, với các cột số khác nhau cho mỗi hàng, vì vậy tôi sử dụng 'điền'). Tôi có thể chạy một 'quét' và kiểm tra' max (col) 'trước khi gọi' read.table', nhưng nó sẽ phù hợp hơn (với tôi) có khả năng chọn số dòng cần quét (thay cho mã cứng '5') – Michele
@ RomanLuštrik vui lòng kiểm tra chỉnh sửa của tôi, cảm ơn – Michele