次のようなdata.frameがあります。
_> dat <- data.frame(Operation = c("Login", "Posted", "Deleted"), `Total Count` = c(5, 25, 40), check.names = FALSE)
> dat
Operation Total Count
1 Login 5
2 Posted 25
3 Deleted 40
_
各操作のパーセンテージを計算したいです。たとえば、操作のパーセンテージはLogin
でした。私は次のような結果を期待します:
_ Operation Total Count Percentage
1 Login 5 0.07142857
2 Posted 25 0.35714286
3 Deleted 40 0.57142857
_
カウントはすでに要約されているため、table()
は機能しません。
_> table(dat$`Total Count`)
5 25 40
1 1 1
_
列をTotal.Count
ではなくTotal Count
と呼びます。名前のスペースはうまく機能しません。
たとえば、my.df
というデータフレームにデータがある場合:
my.df$Pct <- my.df$Total.Count / sum(my.df$Total.Count)
my.df
## Operation Total.Count Pct
## 1 Login 5 0.07142857
## 2 Posted 25 0.35714286
## 3 Deleted 40 0.57142857
関数prop.table()
を使用してパーセンテージを計算できます(列名がTotalCount
であると想定)。
df$percent<- prop.table(df$TotalCount)
df
Operation TotalCount percent
1 Login 5 0.07142857
2 Posted 25 0.35714286
3 Deleted 40 0.57142857
dplyr
を使用する場合:
dat %>%
mutate(Percent = TotalCount / sum(TotalCount))
列名をスペースなしでTotalCount
に変更したことに注意してください。