只读入TSV文件中的某些列名到R中

时间:2013-03-26 19:35:12

标签: sql r header tsv read.table

我有一个非常大的.TSV文件,由于其大小,我无法读入R.

我想只读取选择列BY HEADER NAME,例如。 “健康”。

我该怎么做呢?

1 个答案:

答案 0 :(得分:7)

查看read.table的colClasses参数:

df <- read.table(header = TRUE, colClasses=c(NA, "NULL", NA), text = '
                 A B C
                 1 2 3
                 4 5 6')
df
#  A C
#1 1 3
#2 4 6

<强>更新

要按名称选择,首先在标题中读取,然后为colClasses创建一个向量:

# read the header
header <- read.table(header = FALSE, nrow = 1, text = '
                 A B C
                 1 2 3
                 4 5 6')

# cols we want to select
take <- c('A', 'B')
# create vector for colClasses
takecols <- ifelse(t(header) %in% take, NA, 'NULL')

# read selected cols
df <- read.table(header = TRUE, colClasses=takecols, text = '
                 A B C
                 1 2 3
                 4 5 6')