从相同的第一位数字到第二位数字等开始计算数字的出现次数

时间:2018-07-08 03:08:40

标签: r

如果我在数组中有各种数字,例如13239、23248、42232、12134、24255-我要计算这些数字中有多少都以第一个数字“ 1”开头(例如,在这种情况下,这些数字中有2个以“ 1”作为第一数字),并且那么有多少个数字以第一个数字“ 2”开头,然后继续移动到这些数字中的多少个以第二个数字“ 1”和“ 2”开头,依此类推。 enter image description here

2 个答案:

答案 0 :(得分:2)

我们可以用substr提取第一个数字,并用table提取频率

table(substr(v1, 1, 1))

用于查找以1开头的数字的频率

sum(substr(v1, 1, 1) == 1)

用于查找每个数字的频率计数

i1 <- max(nchar(v1))
lapply(seq_len(i1), function(i) table(substr(v1, i, i)))

数据

v1 <- c(13239, 23248, 42232, 12134, 24255)

答案 1 :(得分:0)

为简单起见,您也可以使用stringi包。

install.packages("stringi");
library(stringi);
v1 <- c(13239, 23248, 42232, 12134, 24255);

# Starts with 1
stri_startswith_fixed(v1,"1");

# Starts with 2
stri_startswith_fixed(v1,"2");

#To get count
sum(stri_startswith_fixed(v1,"2"))