我解析一个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
任何建议计数“”?
我解析一个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
任何建议计数“”?
选择一个:
sum(html_1 == "")
sum(nchar(html_1) == 0)
这主要建立在@罗马的答案,但(1)展示了一种不同的方式来“看”的空间;(2)向您展示了制表不同的想法:
html_1 <- c("I'm working here", " ", "", " ", "No", NA, "")
html_2 <- as.data.frame(html_1)
print
有quote
说法让您可以在列的周围添加引号,这样您就可以更轻松地看到前导空白和尾随空白。这在这里也有帮助。
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
太谢谢你了!这真的很有帮助! – user1486507
您可以使用正则表达式来查找空字符串:
html1 <- c("I'm working here", " ", "", " ")
idx <- grepl("^$", html1)
# [1] FALSE FALSE TRUE FALSE
在上面的代码,^$
表示""
。算上空字符串:
table(idx)
# idx
# FALSE TRUE
# 3 1
谢谢!我不知道我可以使用正则表达式“” – user1486507
谢谢!非常简洁的答案=) – user1486507