错误dplyr摘要

错误dplyr摘要,r,dplyr,R,Dplyr,我有一个data.frame: set.seed(1L) vector <- data.frame(patient=rep(1:5,each=2),medicine=rep(1:3,length.out=10),prob=runif(10)) 这段代码非常有效。但是,我需要获得相同的值,而不必在“摘要”行中使用“prob”。我尝试了以下代码,但它给出了一个data.frame,其中列“average”是一个具有5个相同值的向量,这不是我想要的: vector %>%

我有一个data.frame:

set.seed(1L)
vector <- data.frame(patient=rep(1:5,each=2),medicine=rep(1:3,length.out=10),prob=runif(10))
这段代码非常有效。但是,我需要获得相同的值,而不必在“摘要”行中使用“prob”。我尝试了以下代码,但它给出了一个data.frame,其中列“average”是一个具有5个相同值的向量,这不是我想要的:

vector %>%
        group_by(patient) %>%
        summarise(average=mean(vector[,3]))

PD:为了理解我为什么需要这个,我有另一个数据框,它有多个列,具有复杂的名称,需要“摘要”,这就是为什么我不能将一个一个放在摘要命令上。我想要的是在那里放置一个向量,以计算按患者分组的每一列的概率。

似乎您想要对每一列进行汇总。

vector %>%
    group_by(patient) %>%
    summarise_each(funs(mean), vars= matches('prop'))
使用data.table可以执行以下操作

setDT(vector)[,lapply(.SD,mean),by=patient,.SDcols='prob')

似乎您需要对每个项目进行总结

vector %>%
    group_by(patient) %>%
    summarise_each(funs(mean), vars= matches('prop'))
使用data.table可以执行以下操作

setDT(vector)[,lapply(.SD,mean),by=patient,.SDcols='prob')

我是否可以建议先将数据转换成最方便的格式,以便进一步处理?您最后的评论暗示,首先融合数据,然后应用您已经介绍的工作代码可能是一种很有前途的方法。我认为,与软件包Hanks Peter有关,这实际上解决了我的问题!我将数据框融化并“固化”。我是否可以建议首先将数据转换为最方便的格式,以便进一步处理?您最后的评论暗示,首先融合数据,然后应用您已经介绍的工作代码可能是一种很有前途的方法。我认为,与软件包Hanks Peter有关,这实际上解决了我的问题!我融化并“粘贴”了数据帧。如果我错了,请纠正我,但此解决方案的问题是假设所有列都包含“prob”一词,这正是我试图避免的。我想给出一个具有确切名称的向量(例如vector[,3:50]),因此即使名称完全不同,也会对每一列进行总结。如果我错了,请纠正我,但此解决方案的问题是假设所有列都包含单词“prob”,这正是我试图避免的。我想给出一个具有确切名称的向量(例如向量[,3:50]),因此,即使名称完全不同,也会对每列进行总结。