[英]How to import last 100 rows using read.csv() in R
嗨,我有一個巨大的文件,我想只導入該文件的最后100行。 我們如何使用read.csv()或任何替代方法來做到這一點?
R.utils包有一個名為countLines()的函數。 你可以這樣做:
l2keep <- 10
nL <- countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, skip=nL-l2keep)
如果您使用的是* nix系統,最好使用tail -n 100
命令來獲取最后100行。 在R中實現的任何內容都會更慢,並且可能會慢得多,因為您的文件非常龐大。
如果您使用的是Windows,則可能需要查看此SO問題 。
您可以在read.csv
使用nrows
和skip
參數。 例如,如果您有一個10000行的文件,並且您只想導入最后100行,您可以嘗試這樣做:
read.csv("yourfile.csv",nrows=100,skip=9900)
但如果它是你想要的速度,你可能會更好地使用@Ananda Mahto和@ktdrv提供的解決方案
如果你想要包含標題,請改進@ lauratboyer的答案:
# read headers only
column_names <- as.vector(t(read.csv("your.csv", header=FALSE, colClasses='character', nrows=1)))
# then last n lines
l2keep <- 10
nL <- R.utils::countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, col.names=column_names, skip=nL-l2keep)
對我有用的快速而骯臟的方法 - 在設置select = 1
時使用fread
讀取大文件,以便只讀取第一列。 然后再次使用fread
從所需行讀取數據。 Fread
比read.csv
或其他類似變體快得多。 更多關於fread
與read.csv
: R中data.table包中fread速度的原因
讀取文件,使用尾部函數 a <-read.csv('c:/ ..')尾部(a,100L)
在read.csv()中給出適當的跳過參數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.