在计算标准偏差时,我有一个意想不到的[至少对我来说]错误.想法[*]是将所有缺失值转换为1和0否则.然后在完成关联之前提取具有一些[但不是全部]缺失值的变量.使用sd函数尝试提取步骤,但它失败[为什么?].
library(VIM)
data(sleep) # dataset with missing values
x = as.data.frame(abs(is.na(sleep))) # converts all NA to 1, otherwise 0
y = x[which(sd(x) > 0)] # attempt to extract variables with missing values
Error in is.data.frame(x) :
(list) object cannot be coerced to type 'double'
# convert to double
z = as.data.frame(apply(x, 2, as.numeric))
y = z[which(sd(z) > 0)]
Error in is.data.frame(x) :
(list) object cannot be coerced to type 'double'
Run Code Online (Sandbox Code Playgroud)
[*] R in Action,Robert Kabacoff
我试图用来rowSds()计算每一行标准偏差,以便我可以选择具有高sds的行来绘制图形.
我调用的数据框是xx这样的:
head(xx,1)
Job variable 2012-02-23 2012-02-24 2012-02-25 2012-02-27 2012-02-28 2012-02-29 2012-03-01 2012-03-02 2012-03-03 2012-03-05 2012-03-06 2012-03-07 2012-03-08 2012-03-09 2012-03-10 2012-03-12 2012-03-13 2012-03-14
1 A Duration 152 424 NA 499 320 117 211 363 NA 605 76 309 204 185 NA 25 733 500
2012-03-15 2012-03-16 2012-03-17 2012-03-19 2012-03-20 2012-03-21 2012-03-22 2012-03-23 2012-03-24 2012-03-26 2012-03-27 2012-03-28 2012-03-29 2012-03-30 2012-03-31 2012-04-02 2012-04-03 2012-04-04 2012-04-05 2012-04-06
1 521 601 NA 229 758 421 334 659 NA 419 423 …Run Code Online (Sandbox Code Playgroud) 我试图计算数据框中某些列的平均值和标准差,并将这些值返回到数据框中的新列.我可以让这个工作的意思是:
library(dplyr)
mtcars = mutate(mtcars, mean=(hp+drat+wt)/3)
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试对标准偏差做同样的事情时,我有一个问题,因为我不能像我所做的那样对方程进行硬编码非常容易.所以,我尝试使用一个函数,如下所示:
mtcars = mutate(mtcars, mean=(hp+drat+wt)/3, stdev = sd(hp,drat,wt))
Run Code Online (Sandbox Code Playgroud)
导致错误"sd中的错误(hp,drat,wt):未使用的参数(wt)".我该如何纠正我的语法?谢谢.