Я бы хотел вычислить пропорции уровней факторов в матрице в R.
Пример данных:
mtx <- matrix(NA, nrow=8, ncol=4)
set.seed(12)
wordclass <- c("Function", "Content", "Insert")
for(i in 1:nrow(mtx)){
mtx[i,] <- sample(wordclass, 4, replace = T)
}
mtx
[,1] [,2] [,3] [,4]
[1,] "Content" "Content" "Insert" "Insert"
[2,] "Content" "Function" "Function" "Content"
[3,] "Insert" "Content" "Function" "Content"
[4,] "Function" "Content" "Content" "Content"
[5,] "Insert" "Function" "Function" "Insert"
[6,] "Content" "Insert" "Content" "Function"
[7,] "Insert" "Content" "Function" "Function"
[8,] "Function" "Content" "Insert" "Content"
Если я преобразую mtx
в кадр данных, я мог бы использовать sapply
для получения пропорций:
mtx_df <- as.data.frame(mtx)
props <- as.data.frame(sapply(mtx_df, function(x) prop.table(table(x))))
props
V1 V2 V3 V4
Content 0.375 0.625 0.25 0.50
Function 0.250 0.250 0.50 0.25
Insert 0.375 0.125 0.25 0.25
Но есть ли способ получить пропорции без обхода путем преобразования кадра данных?