ℕʘʘ*_*ḆḽḘ 2 csv r dplyr data.table readr
我有一个tsv
具有以下结构的简单文件:
0 - headerline
1 - empty line
2 - PIG schema
3 - empty line
4 - 1-st line of DATA
5 - 2-nd line of DATA
Run Code Online (Sandbox Code Playgroud)
我想阅读它,可能会使用,readr::read_tsv
但这就是问题所在。
如您所见,第一行包含标题。然后我不想读取三行(它们包含一些来自 Apache PIG 的超级奇怪的数据),数据从第 4 行开始。在 中Pandas
,我会做类似的事情
df = pd.read_csv('/localpath/data.tsv', sep='\t', skiprows=[1,2,3])
Run Code Online (Sandbox Code Playgroud)
这允许我阅读标题并跳过第一行、第二行、第三行。
我在 中没有看到类似的选项readr::read_tsv
。那是 :
df = read_tsv('/localpath/data.tsv', col_names = TRUE, skip = 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
Run Code Online (Sandbox Code Playgroud)
请注意,在我的评论中,我指定nrows = 1
读取名称(这适用于read.csv
),但似乎该参数已被替换为n_max
in readr::read_tsv
。