繁体   English   中英

从csv文件中读取特定行到R中

[英]Reading specific rows from csv file into R

我有一个需要读入R的大型csv文件。但是,我只需要使用特定变量值(即具有某些日期)进行观察。 有没有办法从一开始就可以做到这一点,而无需读取整个文件然后进行子集化?

假设日期位于数据集的第一列(并且您使用的是类Unix机器),您可以执行以下操作:

dates <- paste0(c("2015-06-01", "2015-06-16"), collapse = "|")
expr <- paste0("grep -E '(", dates, "),.+' tmpcsv.csv", collapse = "")
##
R> data.table::fread(expr)
           V1         V2
1: 2015-06-16 -1.6866933
2: 2015-06-16  1.3686023
3: 2015-06-01 -0.2257710
4: 2015-06-16 -1.0185754
5: 2015-06-01  0.3035286
6: 2015-06-01  2.0500847
7: 2015-06-01 -0.4910312

如果没有,则必须相应地修改正则表达式。


数据:

set.seed(123)
##
df <- data.frame(
  Date = Sys.Date() + floor(50*round(runif(50, -1, 1), 1)),
  Value = rnorm(50)
)
write.csv(df, file = "tmpcsv.csv", row.names = FALSE)
##

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM