我想计算以下字符串中每个字符的出现次数,并将结果输出为[字符] [数字] [字符] [数字]格式,小写并按字符排序。
"Hello World !"
d 1 e 1 h 1 l 3 o 2 r 1 w 1 ! 1
答案 0 :(得分:0)
基础R中的解决方案首先,我们使用strsplit()和空字符串“”拆分字符串。同时取消列表和排序。为了更好地衡量,我们在输出中定义了一个我们不想要的字符串向量;看来你不把空间算作“角色”。这必须定义。接下来,粘贴在paste0()中的一个小包。首先,对单词的唯一性使用lapply来计算每次出现的次数。然后,将其粘贴到相应的字符串(和等号)。最后,用逗号折叠结果字符串。
以下是代码:
example_string = "Hello World!"
unwanted_chars = c(" ")
split_string = sort(unlist(strsplit(example_string, "")))
split_string = split_string[split_string %in% unwanted_chars]
paste0(paste0(unique(split_string), " = ",
unlist(lapply(unique(split_string),
function(x) sum(x == unlist(split_string))))),
collapse = ", ")
长线看起来有点难看,如果你想要解开它,逐层解开它。
答案 1 :(得分:0)
@Calbers是正确的,strsplit
是正确的方法,但可以使用单行来实现:
examples = c("Hello World!", "Lorem ipsum")
lapply(strsplit(examples, ""), table)
即。使用空分割examples
然后""
lapply
函数将table
的每个元素拆分为它。只有一个例子就是:
table(strsplit(examples, "")[[1]])
即。我们从strsplit
输出的列表中获取第一个元素。