我有這樣的桌子
Year Type Value
1991 A 4945
1991 B 525
1991 C 764
1992 A 640
1992 B 3935
1992 D 49
1993 K 49
我想生成一個新列來計算每年每種型別的百分比。型別可能每年都在變化,有些年份只有一種型別
。第一個百分比應該是 4945/(4945 525 764)
任何幫助將非常受歡迎。
非常感謝!
uj5u.com熱心網友回復:
按“Year”分組并獲得proportion“Value”
library(dplyr)
df1 %>%
group_by(Year) %>%
mutate(new = proportions(Value) * 100) %>%
ungroup
-輸出
# A tibble: 6 × 4
Year Type Value new
<int> <chr> <int> <dbl>
1 1991 A 4945 79.3
2 1991 B 525 8.42
3 1991 C 764 12.3
4 1992 A 640 13.8
5 1992 B 3935 85.1
6 1992 D 49 1.06
或base R與ave
df1$new <- with(df1, ave(Value, Year, FUN = proportions) * 100)
資料
df1 <- structure(list(Year = c(1991L, 1991L, 1991L, 1992L, 1992L, 1992L
), Type = c("A", "B", "C", "A", "B", "D"), Value = c(4945L, 525L,
764L, 640L, 3935L, 49L)), class = "data.frame", row.names = c(NA,
-6L))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351300.html
