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ですが、ここに問題があります。

ご覧のとおり、最初の行にはヘッダーが含まれています。次に、読み取りたくない3つの行があり(Apache PIGからの非常に奇妙なデータが含まれています)、4行目でデータが始まります。ではPandas、次のようなことをします

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

これにより、ヘッダーを読み取り、行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ます)、この引数は in に置き換えられているn_maxようreadr::read_tsvです。

于 2016-11-17T14:47:22.740 に答える