如何在 R 数据框列中找到连续重复的字符串值的频率?

要查找 R 数据框列中连续重复字符串值的频率,我们可以按照以下步骤操作 -

  • 首先,创建一个带有字符串列的数据框。

  • 然后,在将数据帧转换为data.table对象后,使用序列函数和 rleid 函数查找数据帧列中连续重复字符串值的频率。

创建数据框

让我们创建一个数据框,如下所示 -

例子

x<-sample(c("f","m"),20,replace=TRUE)

df<-data.frame(x)

df

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

输出

    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

以上是 如何在 R 数据框列中找到连续重复的字符串值的频率? 的全部内容, 来源链接: utcz.com/z/349165.html

回到顶部