如何读取高于和低于指定值的行

How to read rows above and below a specified value

我在 table 上有一些数据要读取(目前使用 read.table),但是我在 table 上的最小值是 27,最大值是 1000。 我需要将 read.table 设置为仅读取 >180 和 <800 的值。我的数据太大,无法手动处理(超过 70 万行)。有什么办法吗?

现在,我的代码如下所示:

data1 <- read.table('cn_EP27_L1.sizes')
  names(data1) <- 'sizes1' 
  data1

Table内容:

尝试包 sqldf、函数 read.csv.sql。它允许使用 SQL 语句过滤行(或列)。

library(sqldf)

sql <- "select * from file where V1 > 180 and V1 < 800"
df2 <- read.csv.sql(file = "test_read.txt", sql, sep = " ")

经过测试,

unlink("test_read.txt")

测试数据文件

n <- 700e3
set.seed(2021)
df1 <- matrix(sample(27:1000, 2*n, TRUE), ncol = 2)
df1 <- as.data.frame(df1)
write.table(df1, "test_read.txt", sep = " ", 
            quote = FALSE, row.names = FALSE)

awkread.table

结合使用
df1 <- read.table(pipe("awk 'BEGIN {FS=\" \"} {if ( >180 &&  < 800) print [=10=]}' cn_EP27_L1.sizes.txt"))