考慮下面的數據幀:變換頻率的因子水平成比例
x <-c(rep (c ("s1", "s2", "s3"),each=5))
y <- c(rep(c("a", "b", "c", "d", "e"), 3))
z<-c(1:15)
x_name <- "dimensions"
y_name <- "aspects"
z_name<-"value"
df <- data.frame(x,y,z)
names(df) <- c(x_name,y_name, z_name)
我怎麼能計算和添加比例的新列各因素的水平?在'value'
每個'dimension'
跨'aspects'
這種情況下百分比,這樣我有這樣的事情:
爲了說明:在percentage
7表示的value 1
從合計值的取aspects
下對應於dimension
百分比s1
(在這種情況下爲15)等
我搜索了論壇,但創建百分比的答案只能跨一列而不是兩列。我最終通過使用aggregate
首先計算了跨維度方面的df總值,然後生成了此列。然後我將最初的df
與新的merge
合併,並通過將值列除以總值來創建百分比列。但我覺得這很笨拙。有沒有更簡單的方法來做到這一點?