【发布时间】:2020-10-31 21:27:08
【问题描述】:
我的合著者要求我将sd 添加到具有两个以上级别的因子变量中,sd(as.numeric(df$factor)) 给我一个输出而不是每个输出的 sd。我想purrr::map 可以处理它,但 df%>% select(factor) %>% as.numeric %>% map(~(sd(.))) 输出错误Error in function_list[[i]](value) : 'list' object cannot be coerced to type 'double' 即使 df 不是列表。
【问题讨论】:
-
sdfor each 表示每一列?sd将为列返回单个值,如果您需要为每个级别获取sd。那么你需要df %>% group_by(factor) %>% summarise(SD = sd(yourcolumn)) -
您没有指定上下文,但我认为您应该小心使用分类变量的 sd。例如:取像
c(1,2,1,1,3,2,3,3,1)这样的变量的sd是没有意义的,其中1代表蓝色,2红色和3绿色,没有基础尺度让你看到“2(红色)是两倍多达 1 个(蓝色)”。 -
请使用
dput或我们可以复制和使用的东西添加数据。还显示共享数据的预期输出。了解how to ask a good question 和how to give a reproducible example。
标签: r purrr standard-deviation factors levels