2016-04-24 46 views
1

我正在將一些數據抓取到數據框中,並且正在獲取一些空白字段,而我更願意擁有NA。我試過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) 

我怎樣才能SUB OUT與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

尼斯之一。你在鏈末尾的'ifelse()'調用也可以是'replace(!nzchar(。),NA)',這樣第二個塊可以是一個完整的鏈。 –

+0

剛剛添加它。謝謝 – Rentrop