【发布时间】:2016-05-05 03:45:14
【问题描述】:
我有一个这样的数据框:
df<-data.frame(fac1=rep(c("a","b","c"),3),fac2=c(rep("x",3),rep("y",3),rep("z",3)),val=seq(10,90,10))
我想做的是计算给定 fac2 内每个 fac1 级别的频率。
我没有太多使用“for循环”,但我认为这样的事情会做到这一点:
df$freqs<-for(i in unique(df$fac2)) df$val/sum(df$val)
但是,当我这样做时,什么都不会返回。如果有人有任何想法,那就太好了。
【问题讨论】:
-
你需要
library(data.table);setDT(df)[,val/sum(val) , fac2]