我在查找数字中最高重复数字的频率时遇到了麻烦。我想要输出如下:
Number Output
1111125436 5
9999266613 4
2346275210 3
1234567890 1
等等。
我已尝试freqency
,Biostrings
但无法做到。感谢您的帮助。
答案 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_count
和pmax
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