2013-12-08 266 views
0

我解析一個HTML文件後,我得到了這樣的事情,我想算的頻率「」(3號線)R,的「計數頻率」

html_1 

[1]"I'm working" 
[2]" " 
[3]"" 
[4]" " 

class(html_1) 
character 

我會用表函數對於正常的數據幀,但只要我將其更改爲數據幀,就會變成如下所示,因此我無法區分「」和「」。

html_2 <- as.data.frame(html_1) 
html_2 

I'm working 

任何建議計數「」?

回答

1

選擇一個:

sum(html_1 == "") 

sum(nchar(html_1) == 0) 
+0

謝謝!非常簡潔的答案=) – user1486507

2

這主要建立在@羅馬的答案,但(1)展示了一種不同的方式來「看」的空間;(2)向您展示了製表不同的想法:

html_1 <- c("I'm working here", " ", "", " ", "No", NA, "") 
html_2 <- as.data.frame(html_1) 

printquote說法讓您可以在列的周圍添加引號,這樣您就可以更輕鬆地看到前導空白和尾隨空白。這在這裏也有幫助。

print(html_2, quote = TRUE) 
#    html_1 
# 1 "I'm working here" 
# 2    " " 
# 3     "" 
# 4    " " 
# 5    "No" 
# 6     NA 
# 7     "" 

製表是尋找看起來像""一個字符串一樣簡單:

html_2$html_1 == "" 
# [1] FALSE FALSE TRUE FALSE FALSE NA TRUE 
table(html_2$html_1 == "") 
# 
# FALSE TRUE 
#  4  2 

或者,你可以指望有多少個字符有每個項目獲得相同的信息。在這裏,0顯然是感興趣的字符串(但我不喜歡NA被計算爲兩個字符)。

table(nchar(as.character(html_2$html_1))) 
# 
# 0 1 2 16 
# 2 2 2 1 
+0

太謝謝你了!這真的很有幫助! – user1486507

2

您可以使用正則表達式來查找空字符串:

html1 <- c("I'm working here", " ", "", " ") 
idx <- grepl("^$", html1) 
# [1] FALSE FALSE TRUE FALSE 

在上面的代碼,^$表示""。算上空字符串:

table(idx) 
# idx 
# FALSE TRUE 
#  3  1 
+0

謝謝!我不知道我可以使用正則表達式「」 – user1486507