2016-04-24 4 views
1

データフレームにいくつかのデータをスクラップして、空のフィールドをいくつか取得しています。私はna.stringsを試しましたが、それを間違った場所に置いているか、まったく動作していませんでした。そして、行頭から終わりまで空白であったものをgsubしようとしましたが、うまくいきませんでした。ウェブスクレイピングからブランク値でNAを挿入する

htmlpage <- read_html("http://www.gourmetsleuth.com/features/wine-cheese-pairing-guide") 
sugPairings <- html_nodes(htmlpage, ".meta-wrapper") 
suggestions <- html_text(sugPairings) 
suggestions <- gsub("\\r\\n", '', suggestions) 

空白のフィールドをNAに追加するには、データフレームに追加するか、または追加する必要があります。

答えて

2

rvest::html_textは、ビルドイントリミングオプションの設定がtrim=TRUEです。 これを済ませた後は、たとえばifelseを使用して空の文字列(=="")をテストするか、nzcharを使用します。

私は完全なあなたはこれを行うことができます:

html_nodes(htmlpage, ".meta-wrapper") %>% html_text(trim=TRUE) %>% ifelse(. == "", NA, .) 

またはこれを:

res <- html_nodes(htmlpage, ".meta-wrapper") %>% html_text(trim=TRUE) 
res[!nzchar(res)] <- NA_character_ 

@Richardスクリヴンの改善:

html_nodes(htmlpage, ".meta-wrapper") %>% html_text(trim=TRUE) %>% replace(!nzchar(.), NA) 
+0

ニースの1を。チェーンの終わりの 'ifelse()'コールは 'replace(!nzchar(。)、NA)'でもかまいませんので、2番目のブロックが完全なチェーンになるようにしてください –

+0

ちょうど追加しました。ありがとう – Rentrop

関連する問題