我正在尋找一種方法來獲取向量并回傳每個元素出現的百分比。
有關輸入向量和預期結果,請參見下文。
InputVector<-c(1,1,1,1,1,2,2,2,3,3)
ExpectedResult<-data.frame(Value=c(1,2,3), Percentile=c(0.5,0.3,0.2))
在這種情況下,時間出現1 50%
,時間出現2,時間出現30%
3 20%
。
uj5u.com熱心網友回復:
table
獲取向量上的頻率計數,將proportions
其轉換為比例,然后將命名向量重塑為data.frame
具有stack
in的兩列base R
stack(proportions(table(InputVector)))[2:1]
-輸出
ind values
1 1 0.5
2 2 0.3
3 3 0.2
或用于tidyverse
獲取頻率count
并應用于proportions
頻率列“n”以獲取percentile
library(dplyr)
tibble(Value = InputVector) %>%
count(Value) %>%
mutate(Percentile = proportions(n), n = NULL)
-輸出
# A tibble: 3 × 2
Value Percentile
<dbl> <dbl>
1 1 0.5
2 2 0.3
3 3 0.2
uj5u.com熱心網友回復:
簡單一點,得到比例。
table(InputVector) / length(InputVector)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/530804.html
標籤:r