对R中相同字符的组进行计数

对R中相同字符的组进行计数,r,string,count,data.table,R,String,Count,Data.table,假设我有这样一个字符串: str <- "FRFFFLRR". 请注意,“F”和“R”不一起计算,除非它们相邻。 所以,我需要一种方法来计算相同字符的组数。你有什么想法吗 我已经尝试拆分单个字母,然后使用unique(),但这给我留下了一个问题,即以前出现的一组字母被忽略了。在这种情况下,它给我的是“F R L”而不是“F R F L R”。您可以使用strsplit在每个字符处进行拆分,并使用rleid根据连续值将数据分组,并计算每组中的行数 library(dat

假设我有这样一个字符串:

str <- "FRFFFLRR".
请注意,“F”和“R”不一起计算,除非它们相邻。
所以,我需要一种方法来计算相同字符的组数。你有什么想法吗


我已经尝试拆分单个字母,然后使用
unique()
,但这给我留下了一个问题,即以前出现的一组字母被忽略了。在这种情况下,它给我的是“F R L”而不是“F R F L R”。

您可以使用
strsplit
在每个字符处进行拆分,并使用
rleid
根据连续值将数据分组,并计算每组中的行数

library(data.table)

x <- strsplit(str, '')[[1]]
data.table(x)[, .(x = first(x), y = .N), rleid(x)]

#   rleid x y
#1:     1 F 1
#2:     2 R 1
#3:     3 F 3
#4:     4 L 1
#5:     5 R 2
库(data.table)

x在执行
strsplit

do.call(data.frame, rle(strsplit(str, "")[[1]]))[2:1]
#    values lengths
#1      F       1
#2      R       1
#3      F       3
#4      L       1
#5      R       2
do.call(data.frame, rle(strsplit(str, "")[[1]]))[2:1]
#    values lengths
#1      F       1
#2      R       1
#3      F       3
#4      L       1
#5      R       2