是否存在R函数,用于从数据帧的结果中减去均值并在新表中显示差异?

时间:2019-03-30 15:01:04

标签: r dataframe

我在一个数据帧中有204个IQ观测值,并具有结果的GM。我的任务是从GM中减去个人平均得分。

我已经设置了数据框[IQdata_SubjIQ],该数据框显示了所有具有相关值的单个分数,而我只是不知道如何制作一个新表来显示单个平均分数与GM之间的差异。

在网上寻找答案显示了很多不同的结果; merge,df,diff(as.matrix)和data.table,我尝试了所有这些方法,但我们从未在课堂上学习过。我很难找到正确的代码,因为我从未见过它,也无法告诉我需要进行哪些更改才能获得结果。

dat_l <- dat_w %>% gather(adi_1:kft_2, key=Test_MZP, value=Score) %>% 
                   arrange(Gruppe, Subj)
glimpse(dat_l)

dat_l <- separate(dat_l, Test_MZP, c("Test", "MZP"), sep="_")
dat_l

dat_l$Test <- factor(dat_l$Test)
levels(dat_l$Test)

dat_l$Test <- factor(dat_l$Test, level=c("adi", "afr", "thi", "cft", 
                                         "rav", "nc" ,  "ip", "kft"))
levels(dat_l$Test)

dat_l$MZP <- factor(dat_l$MZP, levels=c(1, 2), labels=c("Prätest", "Posttest"))
levels(dat_l$MZP)

dat_l$MZP <- factor(dat_l$MZP, levels=c("Prätest", "Posttest"), labels=c("IQ1", "IQ2"))
levels(dat_l$MZP)

IQdata <- dat_l %>%
               group_by(Subj, MZP) %>% 
               summarise(N=n(),
                         M=mean(Score),
                         SD=sd(Score),
                         SE=SD/sqrt(N))
data.frame(IQdata)


GM <- mean(IQdata$M)
IQdata_SubjIQ <- as.tibble(IQdata) %>% 
                 group_by(Subj) %>% 
                 summarise(Score_SubjM = mean(M)) 

data.frame(IQdata_SubjIQ)

0 个答案:

没有答案