如果我有1223455567 1777666666我想輸出爲5和6。我怎樣才能在R語言中做到這一點?如何計算一個大型數據集中每10個數字集的模式(統計)
我知道如何找到每10個數據的平均值,但我想要的是模式。
這裏是我試過的平均
mean10 <- aggregate(level, list(rep(1:(nrow(level) %/% n+1),each = n, len = nrow(level))), mean)[-1];
,有一個功能模式如下:
MODE <- function(dataframe){
DF <- as.data.frame(dataframe)
MODE2 <- function(x){
if (is.numeric(x) == FALSE){
df <- as.data.frame(table(x))
df <- df[order(df$Freq), ]
m <- max(df$Freq)
MODE1 <- as.vector(as.character(subset(df, Freq == m)[, 1]))
if (sum(df$Freq)/length(df$Freq)==1){
warning("No Mode: Frequency of all values is 1", call. = FALSE)
}else{
return(MODE1)
}
}else{
df <- as.data.frame(table(x))
df <- df[order(df$Freq), ]
m <- max(df$Freq)
MODE1 <- as.vector(as.numeric(as.character(subset(df, Freq == m)[, 1])))
if (sum(df$Freq)/length(df$Freq)==1){
warning("No Mode: Frequency of all values is 1", call. = FALSE)
}else{
return(MODE1)
}
}
}
return(as.vector(lapply(DF, MODE2)))
}
通過 「每10個數據」 你的意思是:一個模式行1:10,一個模式行2:11,一個模式行3:12, ...或者你的意思是行模式爲1:10,行模式爲行11:20,行模式爲21:30 ... – MichaelChirico
1:10 11:20 21:30這樣 –