R

时间:2016-02-18 05:14:48

标签: r

我在查找数字中最高重复数字的频率时遇到了麻烦。我想要输出如下:

Number         Output
1111125436     5
9999266613     4
2346275210     3
1234567890     1

等等。

我已尝试freqencyBiostrings但无法做到。感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

可能有更好的方法,但将数字拆分为字符串和表格似乎是可能的:

vapply(strsplit(as.character(dat$Number),""), function(x) max(table(x)), FUN.VALUE=1L)
#[1] 5 4 3 1

答案 1 :(得分:4)

可能的base R解决方案:

df <- data.frame(Number = c(1111125436, 9999266613, 2346275210, 1234567890))
df$Output <- sapply(df$Number, function(x) tail(sort(table(strsplit(as.character(x), ''))), 1))
df
#       Number Output
# 1 1111125436      5
# 2 9999266613      4
# 3 2346275210      3
# 4 1234567890      1

答案 2 :(得分:3)

以下是stri_countpmax

的另一个选项
library(stringi)
do.call(pmax,lapply(0:9, stri_count_fixed, str=df1$Number))
#[1] 5 4 3 1

rowMaxs/stri_count

library(matrixStats)
rowMaxs(sapply(0:9, stri_count_fixed, str=df1$Number))
#[1] 5 4 3 1