如何计算字符串中每个字符的出现次数,并将输出编码为[character][number][character][number]格式?

如何计算字符串中每个字符的出现次数,并将输出编码为[character][number][character][number]格式?,r,R,我想计算以下字符串中每个字符的出现次数,并将结果输出为[character][number][character][number]格式、小写和按字符排序 "Hello World !" d 1 e 1 h 1 l 3 o 2 r 1 w 1 ! 1 以R为基数的解决方案。首先,我们使用strsplit()和空字符串“”拆分字符串。也可以同时取消列表和排序。为了更好地度量,我们定义了输出中不需要的字符串向量;似乎您没有将空格“”计算为一个字符。这必须加以界定。接下来,在paste0()中粘贴一

我想计算以下字符串中每个字符的出现次数,并将结果输出为[character][number][character][number]格式、小写和按字符排序

"Hello World !"
 d 1 e 1 h 1 l 3 o 2 r 1 w 1 ! 1

以R为基数的解决方案。首先,我们使用strsplit()和空字符串“”拆分字符串。也可以同时取消列表和排序。为了更好地度量,我们定义了输出中不需要的字符串向量;似乎您没有将空格“”计算为一个字符。这必须加以界定。接下来,在paste0()中粘贴一个小程序包。首先,对字符的唯一性使用lappy来计算每次出现的次数。然后,将其与相应的字符串(和等号)粘贴在一起。最后,用逗号折叠结果字符串

代码如下:

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 = ", ")

这条长线看起来有点难看,如果你想解开它,就把它一层一层地解开。

解决方案在R底。首先我们使用strsplit()拆分字符串,并将空字符串“”作为拆分。也可以同时取消列表和排序。为了更好地度量,我们定义了输出中不需要的字符串向量;似乎您没有将空格“”计算为一个字符。这必须加以界定。接下来,在paste0()中粘贴一个小程序包。首先,对字符的唯一性使用lappy来计算每次出现的次数。然后,将其与相应的字符串(和等号)粘贴在一起。最后,用逗号折叠结果字符串

代码如下:

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 = ", ")

这条长线看起来有点难看,如果你想解开它,就把它一层一层地解开。

@Calbers说得对,strsplit是正确的方法,但是可以使用一条线来实现:

examples = c("Hello World!", "Lorem ipsum")
lapply(strsplit(examples, ""), table)
i、 e.使用空拆分
“”
拆分
示例
的每个元素,然后将
函数应用于该元素。仅举一个例子:

table(strsplit(examples, "")[[1]])

i、 e.我们从由
strsplit

输出的列表中获取第一个元素。Calbers认为
strsplit
是正确的方法,但可以使用一个线性函数实现:

examples = c("Hello World!", "Lorem ipsum")
lapply(strsplit(examples, ""), table)
i、 e.使用空拆分
“”
拆分
示例
的每个元素,然后将
函数应用于该元素。仅举一个例子:

table(strsplit(examples, "")[[1]])
i、 e.我们从列表中获取第一个元素,该列表由
strsplit

do.call(粘贴,as.data.frame(table(strsplit(“Hello World!”,“”))输出)
do.call(粘贴,as.data.frame(table(strsplit(“Hello World!”,“”))