嗨,我有一个很大的文件,我只想从该文件中导入最后 100 行。我们如何使用 read.csv() 或任何替代方法来做到这一点?
问问题
15857 次
7 回答
23
包 R.utils 有一个名为 countLines() 的函数。你可以这样做:
l2keep <- 10
nL <- countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, skip=nL-l2keep)
于 2013-08-30T16:41:30.787 回答
3
如果您在 *nix 系统上,最好使用该tail -n 100
命令获取最后 100 行。在 R 中实现的任何东西都会变慢,并且可能会慢得多,因为您的文件确实很大。
如果您使用的是 Windows,您可能想看看这个 SO question。
于 2013-08-30T06:45:55.513 回答
2
如果您也想包含标题,请改进@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)
于 2018-06-26T15:29:51.360 回答
1
nrows
您可以skip
在read.csv
. 例如,如果您有一个包含 10000 行的文件,并且您只想导入最后 100 行,您可以试试这个:
read.csv("yourfile.csv",nrows=100,skip=9900)
但是,如果您想要的是速度,那么使用@Ananda Mahto 和@ktdrv 提供的解决方案可能会更好
于 2013-08-30T06:48:40.423 回答
0
对我有用的快速而肮脏的方式 - 用于fread
在设置时读取大文件,select = 1
以便只读取第一列。然后fread
再次使用从所需行读取数据。比或其他类似变体Fread
快得多。read.csv
更多关于fread
vsread.csv
这里:R中data.table包中fread速度的原因
于 2017-10-08T18:27:50.563 回答
0
读取文件,使用tail函数 a<-read.csv('c:/..') tail(a,100L)
于 2019-01-03T12:35:01.857 回答
-1
在 read.csv() 中给出适当的跳过参数
于 2015-06-10T16:52:31.623 回答