回答
如果你想实际的列值,作为你的例子似乎来表示,那么你就可以从文本连接读取表:
> read.table(textConnection("I am going Out"))
V1 V2 V3 V4
1 I am going Out
要回答你的问题的标题,即多少空间也有,你可以用ncol
数以上的列,并减去一个。但是,如果你是只感兴趣的空格数,下面是更有效:
length(gregexpr(" ", "I am going Out")[[1]])
这使用正则表达式搜索的空间。
[[1]]
将结果列表的第一个元素作为结果列表的第一个元素,它对应于输入向量的第一个项目,其中“I am Out”作为其唯一元素。如果你在那里传递了一个不同的矢量,你的列表可能有多个元素,或者根本没有空元素。
如果没有空格,gregexpr
仍然会返回一个长度为1
的列表,并将-1
作为匹配的位置以指示不存在匹配。这会导致上述代码在该情况下错误地报告一个结果。一个更复杂的解决方案,这与优惠和也接受矢量作为输入,如下:
countSpaces <- function(s) { sapply(gregexpr(" ", s), function(p) { sum(p>=0) }) }
功能的工作原理如下:gregexpr
将返回一个列表结果,一个用于输入的每个元素vectors
。 sapply
将迭代该列表,并为列表中的每个元素计算匹配的数量。它不使用匹配位置向量的length
进行计数,而是使用sum
来仅对非负值进行计数,因此会丢失由匹配失败导致的任何-1
。在该总和中存在从FALSE/TRUE
到0/1
的隐式转换。 sapply
的结果将再次是一个向量,因此很好地匹配输入向量。
该功能可用于重写数据帧,如one comment中所要求的那样。因此,假设您有一个名为foo
的数据框,它在列bar
中具有字符串,并且应该修改为在新列baz
中包含这些计数。你可以写为
foo <- transform(foo, baz = countSpaces(bar))
+1。这取决于他们想要什么,但这可能更合适:length(gregexpr(“[] +”,“我要出去”)[[1]])(答案= 3)。用这个短语(有额外的空格),你使用的方法计算每个空格。 – A5C1D2H2I1M1N2O1R2T1
嗯。你如何在评论中添加多个空格? – A5C1D2H2I1M1N2O1R2T1
@mrdwab,请参阅http://meta.stackexchange.com/questions/30020/multiple-spaces-in-code-in-comments-get-merged-into-one。解决方法:使用非空格空格,作为U + 00A0 unicode代码点输入。 – MvG
另一种方法是使用strsplit
功能:
R> strsplit("I am going Out", " ")[[1]]
[1] "I" "am" "going" "Out"
所以我们分开的第一个参数 - I am going Out
- 第二个参数 - 空的空间。然后,我们可以只使用length
:
R> length(strsplit("I am going Out", " ")[[1]])
[1] 4
但我们不想知道单词的数量。所以我认为MvG的回答更合适。 – rinni
我同意@ MvG的回答比较好,但是我不会对“我们不知道字数” – csgillespie
的意见进行评论嗯,我们想知道_spaces_的数量,而不是_words_的数量。你计算单词的数量。 – rinni
我必须承认我还没有看过真的那么仔细所以这可能不是一个可能性是你所追求,但..
x <- "I am going Out"
nchar(x)- nchar(gsub(" ", "", x))
到MVG的原建议的替代方案(尽管不太漂亮):
as.data.frame(matrix(unlist(strsplit("I am going Out", "\\s+", perl=TRUE)), nrow=1))
您还可以使用str_count
从stringr
包。这些不太详细,避免正则表达式可以快一点。
library(stringr)
text = "I am going Out"
#matches regular expression
str_count(text, ' ')
或者,如果你想要的东西更快
#matches literal text
str_count(text, fixed(' '))
- 1. 找不到字符串中的'空格'字符
- 2. 查找字符串中的空格
- 3. jquery在数组中找到一个空格的字符串
- 4. indexOf找到空字符串
- 5. NSComparisonPredicate找到空字符串
- 6. 从斜杠查找字符串到空格或字符
- 7. 函数查找空字符串,并返回空格如果找到
- 8. 字符串中的空格
- 9. 带空格的字符串
- 10. 查找子字符串忽略空格
- 11. Java:包括找到字符串长度时的空格
- 12. 使用JavaScript查找字符串中的空格数
- 13. 在Swift中查找字符串中的空格数
- 14. 字符串中奇怪的空格字符,那不是空格?
- 15. 找到字符串中的数字REGEX
- 16. 字符串格式不考虑字符串中的空格
- 17. 字符串:用数字替换空格
- 18. 如何在字符串中找不到空格的子串的最大频率
- 19. 找到字符串开头的字符串数组内的PHP
- 20. 带表格空格的字符串php
- 21. SQL找不到空字符串
- 22. 在嵌套数据(Java)中找到空值和空字符串
- 23. 将空格添加到字符串
- 24. PHP:将空格添加到字符串
- 25. 传递字符串与空格到javascript
- 26. 找到一个子字符串,其中包含空格(PHP)
- 27. 格式化字符串 - 每三位数字之间的空格
- 28. 字符串 - 查找空值
- 29. jQuery的,字符串,找到
- 30. 的Unix找到字符串
也许你想'read.fwf'虽然我不知道你是什么之后。 –