如何读取高于和低于指定值的行
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)
将 awk
与 read.table
结合使用
df1 <- read.table(pipe("awk 'BEGIN {FS=\" \"} {if ( >180 && < 800) print [=10=]}' cn_EP27_L1.sizes.txt"))
我在 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)
将 awk
与 read.table
df1 <- read.table(pipe("awk 'BEGIN {FS=\" \"} {if ( >180 && < 800) print [=10=]}' cn_EP27_L1.sizes.txt"))