R 按百分比提取频率
下面是一些以数字表示的数据帧R 按百分比提取频率,r,R,下面是一些以数字表示的数据帧 data.frame(class = ("a","b","a","b"), date = c(2009,2009,2010,2010), volume=c(1,1,2,0)) 如何将“体积”列转换为不同标签的同一年日期的百分比 data.frame(class = ("a","b","a","b"), date = c(2009,2009,2010,2010), volumepercentage=c("50.00%","50.00%","100.00%","9.0
data.frame(class = ("a","b","a","b"), date = c(2009,2009,2010,2010), volume=c(1,1,2,0))
如何将“体积”列转换为不同标签的同一年日期的百分比
data.frame(class = ("a","b","a","b"), date = c(2009,2009,2010,2010), volumepercentage=c("50.00%","50.00%","100.00%","9.00%"))
下面是一个基本的R方法:
df1.spl <- split(df1, df1$date)
df1.lst <- lapply(df1.spl, function(x) data.frame(x, pct=prop.table(x$volume)*100))
df2 <- do.call(rbind, df1.lst)
df2
# class date volume pct
# 2009.1 a 2009 1 50
# 2009.2 b 2009 1 50
# 2010.3 a 2010 2 100
# 2010.4 b 2010 0 0
请注意行名称中的更改。命令rownamesdf2您是否需要df1%>%groupbydate%>%mutateEvolumNepercentage=100*volume/sumVolume最后一行的9%不清楚请显示您尝试了什么,因为这并不完全清楚,您做了什么研究,因为我想还有许多其他SO帖子至少应该有所帮助