快速提问。我将 csv 文件读入变量data
. 它有一个列 label var
,其中包含数值。
当我运行命令时
sd(data$var)
我明白了
[1] NA
而不是我的标准偏差。
你能帮我弄清楚我做错了什么吗?
快速提问。我将 csv 文件读入变量data
. 它有一个列 label var
,其中包含数值。
当我运行命令时
sd(data$var)
我明白了
[1] NA
而不是我的标准偏差。
你能帮我弄清楚我做错了什么吗?
尝试sd(data$var, na.rm=TRUE)
然后列 var 中的任何 NA 都将被忽略。还将支付检查您的数据的费用,以确保 NA 应该是 NA 并且没有读取错误、命令,如head(data)
, tail(data)
,并且str(data)
应该对此有所帮助。
在dplyr字符串中重用变量名时,我犯了一两次错误,这导致了问题。
mtcars %>%
group_by(gear) %>%
mutate(ave = mean(hp)) %>%
ungroup() %>%
group_by(cyl) %>%
summarise(med = median(ave),
ave = mean(ave), # should've named this variable something different
sd = sd(ave)) # this is the sd of my newly created variable "ave", not the original one.
您可能在 中缺少值var
,或者该列不是数字,或者只有一行。
尝试删除将有助于第一种情况的缺失值:
sd(dat$var, na.rm = TRUE)
如果这不起作用,请检查
class(dat$var)
是“数字”(第二种情况)并且
nrow(dat)
大于 1(第三种情况)。
最后,data
是 R 中的一个函数,所以最好使用不同的名称,我在这里做了。
数据中可能有Inf
或-Inf
作为值。
尝试
is.finite(data)
或者
min(data, na.rm = TRUE)
max(data, na.rm = TRUE)
检查是否确实如此。