1

我有一个tsv具有以下结构的简单文件:

0 - headerline
1 - empty line
2 - PIG schema
3 - empty line
4 - 1-st line of DATA
5 - 2-nd line of DATA

我想阅读它,可能正在使用,readr::read_tsv但这是问题所在。

如您所见,第一行包含标题。然后我有三行我不想读取它(它们包含一些来自 Apache PIG 的超级奇怪的数据),并且在第 4 行数据开始Pandas,我会做类似的事情

df = pd.read_csv('/localpath/data.tsv', sep='\t', skiprows=[1,2,3])

这使我可以阅读标题跳过第一、二、三行。

我没有看到类似的选项readr::read_tsv。那是 :

df = read_tsv('/localpath/data.tsv', col_names = TRUE, skip = 4)

它不解析标题...

有任何想法吗?

4

1 回答 1

4

发表我的评论作为答案。基本上,我们读入第一行作为标题,然后读入其余行作为数据:

library(readr)
names_t <- read_tsv('/localpath/data.tsv', col_names = FALSE, n_max = 1)
df1 <- read_tsv('/localpath/data.tsv', col_names = FALSE, skip = 4)
names(df1) <- names_t

请注意,在我的评论中,我指定nrows = 1读取名称(这适用于read.csv),但似乎该参数已替换为n_maxin readr::read_tsv

于 2016-11-17T14:47:22.740 回答