R 子集数据帧会导致不正确的输出

R 子集数据帧会导致不正确的输出,r,dplyr,R,Dplyr,我试图通过重复测量(一天多次测量,几周内测量)来计算变量的平均值,从而实现创建日期框(df)子集的简单任务。此变量在我的df中称为“消费” 我在这里遵循了这个示例,并根据我的df和我想要的条件修改了代码: 然而,我去手工计算了一些方法(使用excel),得到了完全不同的结果 有人能给我指出代码出错的正确方向吗 我有“0”作为一些测量值,它们很重要,在计算平均值时需要包括在内 以下是一个可复制的示例: df <- read.table("https://pastebin.com/raw/Zp

我试图通过重复测量(一天多次测量,几周内测量)来计算变量的平均值,从而实现创建日期框(df)子集的简单任务。此变量在我的df中称为“消费”

我在这里遵循了这个示例,并根据我的df和我想要的条件修改了代码:

然而,我去手工计算了一些方法(使用excel),得到了完全不同的结果

有人能给我指出代码出错的正确方向吗

我有“0”作为一些测量值,它们很重要,在计算平均值时需要包括在内

以下是一个可复制的示例:

df <- read.table("https://pastebin.com/raw/Zpa8cLBN", header = T)
df_平均百分比(治疗组、对照组)%>%总结(
消耗=第一次(消耗),消耗=最后一次(消耗),消耗=平均值(消耗[消耗>=0]))

desired_results似乎我需要为
summerise
函数使用不同于原始
df

df_mean <- df %>% group_by(treatment,day,Control) %>% summarise(
  Mean_consumption = first(consumption), Mean_consumption = last(consumption), Mean_consumption = mean(consumption[consumption >= 0]))
df_平均百分比(治疗组、对照组)%>%总结(
平均消费=第一次(消费),平均消费=最后一次(消费),平均消费=平均(消费[消费>=0]))
当与我的
期望结果
交叉引用时,这正是我所寻找的


谢谢@jlesuffler

我们可以使用
数据。表

library(data.table)
setDT(df)[, .(Mean_consumption = first(consumption), Mean_consumptionlast = last(consumption), Mean_consumptionfilt = mean(consumption[consumption >= 0])), .(treatment, day, Control)]

您需要在您的
摘要中使用不同的变量名
,因为在这里您每次调用它时都要修改
消费量
,谢谢您的提示。我将把它作为回应发布。我没有意识到使用相同的变量名会导致此问题。您好,谢谢您的评论。我感谢你的意见
desired_results <- read.table("https://pastebin.com/raw/vZten0jd", header = T) # calculated manually in excel
df_mean <- df %>% group_by(treatment,day,Control) %>% summarise(
  Mean_consumption = first(consumption), Mean_consumption = last(consumption), Mean_consumption = mean(consumption[consumption >= 0]))
library(data.table)
setDT(df)[, .(Mean_consumption = first(consumption), Mean_consumptionlast = last(consumption), Mean_consumptionfilt = mean(consumption[consumption >= 0])), .(treatment, day, Control)]