计算R中的依赖标准差

时间:2017-10-10 13:10:43

标签: r statistics calculated-columns standard-deviation crowdsourcing

我想计算R中的标准差。但标准函数“sd(x)”不是我需要的函数。我正在寻找一个函数来计算sd(x,依赖于我的数据帧中的另一个变量)。这样我就可以通过依赖变量(image)添加一个带有sd的新列。 像这样:

$("span").mouseenter(function(event){
event.stopPropagation();  
});

2 个答案:

答案 0 :(得分:1)

功能ave非常适用于此。

dat <- read.table(text = "
image   answer    sd
a       1         0,70
a       2         0,70
b       2         2,12
b       5         2,12
", header = TRUE, dec = ",")

ave(dat$answer, dat$image, FUN = sd)
#[1] 0.7071068 0.7071068 2.1213203 2.1213203

修改
在评论中与Henry对话后,我决定编辑答案。幸运的是,因为在同一时间我意识到原始数据集使用逗号作为小数点 因此,首先要更改,在上面的dec = ","中添加参数read.table 第二次更改,以显示由sd指令创建的列ave的完整解决方案。

dat2 <- dat[-3]  # start with the OP's data without the 3rd column
dat2$sd <- ave(dat2$answer, dat2$image, FUN = sd)
dat2
#  image answer        sd
#1     a      1 0.7071068
#2     a      2 0.7071068
#3     b      2 2.1213203
#4     b      5 2.1213203

答案 1 :(得分:0)

我的理解是你想要每个图像的答案标准偏差。您可以按照图像对df进行分组,然后使用sd,它将使用dplyr为每个组计算separetly。

df <- data.frame(image = c('a', 'a', 'b', 'b'),
                 answer = c(1, 2, 2, 5))

library(dplyr)    
df %>%
        group_by(image) %>%
        mutate(sd = sd(answer))