考虑以下代码来计算每个单词中字母“a”的出现次数:
data <- data.frame(number=1:4, string=c("this.is.a.great.word", "Education", "Earth.Is.Round", "Pinky), stringsAsFactors = F)
library(stringr)
data$Count_of_a <- str_count(data$string, "a")
data
这将导致这样的事情:
number string Count_of_a
1 1 this.is.a.great.word 2
2 2 Education 1
3 3 Earth.Is.Round 1
4 4 Pinky 0
我试图做更多的事情:
问题是,如果我使用nchar(data$string),它也计算点'.'此外,我无法找到以上4个要求的帮助。
最终数据我想看起来像这样:
number string starts_with_vowel ends_with_vowel TotalLtrs
1 this.is.a.great.word 0 0 16
2 Education 1 0 9
3 Earth.Is.Round 1 0 12
4 Pinky 0 1 5
library(stringr)
str_count(df$string, "a|e|i|o|u|A|E|I|O|U")
[1] 6 5 5 1
str_count(df$string, paste0(c(letters,LETTERS), collapse = "|"))
[1] 16 9 12 5
ifelse(substr(df$string, 1, 1) %in% c("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"), 1, 0)
[1] 0 1 1 0
ifelse(substr(df$string, nchar(df$string), nchar(df$string)) %in% c("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"), 1, 0)
[1] 0 0 0 0
你想要一个正则表达式的组合
library(tidyverse)
data %>%
mutate(
nvowels = str_count(tolower(string), "[aeoiu]"),
total_letters = str_count(tolower(string), "\\w"),
starts_with_vowel = grepl("^[aeiou]", tolower(string)),
ends_with_vowel = grepl("[aeiou]$", tolower(string))
)
# number string nvowels total_letters starts_with_vowel ends_with_vowel
# 1 1 this.is.a.great.word 6 16 FALSE FALSE
# 2 2 Education 5 9 TRUE FALSE
# 3 3 Earth.Is.Round 5 12 TRUE FALSE
# 4 4 Pinky 1 5 FALSE FALSE
如果你认为y
是一个元音,那么就这样加上它
nvowels = str_count(tolower(string), "[aeoiuy]")
starts_with_vowel = grepl("^[aeiouy]", tolower(string))
ends_with_vowel = grepl("[aeiouy]$", tolower(string))
问题内容: 我想从表中查询具有元音作为其第一个和最后一个字符的名称列表。结果不能包含重复项。 为此,我编写了一个查询,该查询具有25个条件,每个元音每个其他元音,这非常笨拙。有更好的方法吗? 问题答案: 您可以使用正则表达式:
我需要找到一个单词中元音的计数。然而,当我比较单词中的字母是否是元音时, 举个例子,我做的就像下面这个, ……)//其余部分被省略 语句变得太长。有没有办法将它们与正则表达式或类似正则表达式的比较进行比较,并给我字符串中元音出现的次数?
问题内容: 从STATION查询不以元音开头或不以元音结尾的CITY名称列表。您的结果不能包含重复项。 我写下面的查询,但工作正常。有什么建议吗? 问题答案: 假设您正在使用MySQL,这就是您要寻找的东西 Footnote : RLIKE and DISTINCT
给定一个句子,我希望能够数出每个单词中有多少个元音。 示例输入: 示例输出: 我最初的想法是有2个同时循环。第一个循环直到满足EOF以结束程序,第二个(嵌套的)同时循环将运行直到满足空格 (" ") ,同时还对当前单词中的元音求和。一旦遇到空格,它将打印出元音的当前值,第二个同时循环将结束并重新开始(元音计数器重置回0)。 这是我为此编写的代码: 然而,这导致语法错误,我不能找出我的错误。 第6行
问题内容: 我需要检查单词中是否存在元音。如果是这样,应对“说”一词进行操作。我想避免for循环,因为我想到了这一点: 请推荐一种执行时间成本较低的方法。另外,也请帮助我纠正上述方法。 问题答案: vowels = {“a”, “e”, “i”, “o”, “u”, “A”, “E”, “I”, “O”, “U”} if any(char in vowels for char in word):
我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。