【发布时间】:2014-09-18 22:51:47
【问题描述】:
我有一个data.frame:
set.seed(1L)
vector <- data.frame(patient=rep(1:5,each=2),medicine=rep(1:3,length.out=10),prob=runif(10))
我想在按患者分组时获得“概率”列的平均值。我使用以下代码执行此操作:
vector %>%
group_by(patient) %>%
summarise(average=mean(prob))
此代码完美运行。但是,我需要在不使用“总结”行上的“概率”一词的情况下获得相同的值。我尝试了以下代码,但它给了我一个 data.frame,其中“平均”列是一个具有 5 个相同值的向量,这不是我想要的:
vector %>%
group_by(patient) %>%
summarise(average=mean(vector[,3]))
PD:为了理解我为什么需要这个,我有另一个数据框,其中包含多个具有复杂名称的列,需要“汇总”,这就是为什么我不能一一放在汇总命令上的原因。我想要的是放一个向量来计算按患者分组的每一列的概率。
【问题讨论】:
-
我可以建议先将数据转换成最方便的格式以便进一步处理吗?您的最后一条评论暗示,首先融合数据然后应用您已经提供的工作代码可能是一种有前途的方法。
-
我认为是currently in the works,链接到lazy 包
-
谢谢彼得,这实际上解决了我的问题!我融化并“转播”了数据框。