pdftools
パッケージで生成された文字ベクトルから表データを抽出しようとしています。私が使用して文字行列の中にこれらを分割し、参加してきましたpdftoolsを使用してPDFからテーブルを読み取る
pdftext <- c(" Clostridium perfringens no./100ml 0 0 0 0 1409 0 0\n Colony count 22°C cfu/ml - 0 15.673 >300.000 52 0 0\n Colony count 37°C cfu/ml - 0 3.942 41 52 0 0")
lines <- strsplit(pdftext,"\n")
lines
[[1]]
[1] " Clostridium perfringens no./100ml 0 0 0 0 1409 0 0"
[2] " Colony count 22°C cfu/ml - 0 15.673 >300.000 52 0 0"
[3] " Colony count 37°C cfu/ml - 0 3.942 41 52 0 0"
:
do.call(rbind,lapply(lines, function(x) {strsplit(x," [ ]+")})[[1]])
含む列の間に一つだけのスペースがあるので、これは失敗した出力(トリミング)、このようになります。 15.673 >300.000
。
ここで、複数の質問があるかもしれません:
- どのように私はread.fwfする文字ベクトルを渡すのですか?
15.673 >300.000
を分割するより良い正規表現をお勧めしますが、Colony count 22°C
は使用できませんか?- このテーブルを分割する簡単な方法はありますか?私のコードはすべて少し不器用に見えます。
ありがとうございます。
完全ではありませんが、 'read.table(text = pdftext、row.names = NULL)'はclose – rawr
または 'read.csv(text = gsub( '{2、} |(?=>)'、 ' '、trimws(pdftext)、perl = TRUE)、row.names = NULL、stringsAsFactors = FALSE) ' – rawr
@rawr' read.table'(と 'read.fwf')はこのエラーを返します" fileは文字でなければなりません文字列または接続 "。私は質問1で詳しく述べるべきだったはずです。あなたの 'read.csv'コードは、最初の行が列見出しになることを除いて、よりよく見えます – whanrott