在?read.table
中指出:函數read.table更改用來確定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’).
我需要使用fill
paramenter和我的一些txt文件可能有行第五排之後的列數最多。我不能使用標題,只是因爲我沒有它,並且col.names將在導入後定義,所以我想將這5個R用於整個文件中,(我沒有記住任何速度損失,我可以得到)。任何建議?謝謝!
編輯:
剛剛發現這個在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)
代碼我可以改變上面的代碼中的第4行數5
?是否會對read.table
行爲產生任何副作用?
編輯2:我目前使用
這種方法
maxCol <- max(sapply(readLines(filesPath), function(x) length(strsplit(x, ",")[[1]])))
有列的最大數量,並把結果來創建虛擬col.names
像paste0("V", seq_len(maxCol))
。你認爲仍然值得有另一個read.table
有可能選擇那個?
如果你指定通過'colClasses'閱讀哪些列關於什麼的? –
嗨,事情是。我不知道列的數量(有很多文件要導入,每行有不同數量的列,所以我使用'fill')。在調用'read.table'之前,我可以運行'scan'並檢查'max(col)',但是對於可以選擇要掃描的行數的代碼,一個硬編碼的'5') – Michele
@RomanLuštrik請檢查我的編輯,謝謝 – Michele