簡體   English   中英

如何使用R中的read.csv()導入最后100行

[英]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使用nrowsskip參數。 例如,如果您有一個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從所需行讀取數據。 Freadread.csv或其他類似變體快得多。 更多關於freadread.csvR中data.table包中fread速度的原因

讀取文件,使用尾部函數 a <-read.csv('c:/ ..')尾部(a,100L)

在read.csv()中給出適當的跳過參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM