如何在 R 数据框列中找到连续重复的字符串值的频率?
要查找R数据框列中连续重复字符串值的频率,我们可以按照以下步骤操作-
首先,创建一个带有字符串列的数据框。
然后,在将数据帧转换为data.table对象后,使用序列函数和rleid函数查找数据帧列中连续重复字符串值的频率。
创建数据框
让我们创建一个数据框,如下所示-
例子
x<-sample(c("f","m"),20,replace=TRUE) df<-data.frame(x) df
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
输出
x 1 m 2 m 3 f 4 m 5 f 6 m 7 m 8 m 9 m 10 f 11 m 12 m 13 f 14 m 15 m 16 m 17 f 18 m 19 m 20 m
查找连续重复字符串值的频率
加载data.table包并将df设置为data.table对象,然后查找连续重复字符串值的频率-
例子
x<-sample(c("f","m"),20,replace=TRUE) df<-data.frame(x) library(data.table) setDT(df)[,Freq:=sequence(.N),by=rleid(x)][x==1,Freq:=1][]
输出
x Freq 1: m 1 2: m 2 3: f 1 4: m 1 5: f 1 6: m 1 7: m 2 8: m 3 9: m 4 10: f 1 11: m 1 12: m 2 13: f 1 14: m 1 15: m 2 16: m 3 17: f 1 18: m 1 19: m 2 20: m 3