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


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

  • 首先,创建一个包含字符串列的数据框。
  • 然后,将数据框转换为 data.table 对象后,使用 sequence 函数和 rleid 函数来查找数据框列中连续重复的字符串值的频率。

创建数据框

让我们创建一个如下所示的数据框:

 在线演示

x<-sample(c("f","m"),20,replace=TRUE)
df<-data.frame(x)
df

执行上述脚本后,将生成以下输出(由于随机化,此输出将在您的系统上有所不同):

    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

更新于: 2021年8月13日

161 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.