evt*_*evt 9 statistics r na stdev
快问.我将csv文件读入变量data.它有一个列标签var,它有数值.
当我运行命令
sd(data$var)
Run Code Online (Sandbox Code Playgroud)
我明白了
[1] NA
Run Code Online (Sandbox Code Playgroud)
而不是我的标准差.
你能帮我弄清楚我做错了什么吗?
nzc*_*ops 28
尝试sd(data$var, na.rm=TRUE)然后忽略列var中的任何NA.还将支付检查你的数据,以确保NA的应NA的,有没有被错误读取,命令一样head(data),tail(data)和str(data)应与帮助.
Jef*_*ker 12
我曾经犯过一两次在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.
Run Code Online (Sandbox Code Playgroud)
您可能缺少值var,或者列不是数字,或者只有一行.
尝试删除缺少的值,这将有助于第一种情况:
sd(dat$var, na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请检查
class(dat$var)
Run Code Online (Sandbox Code Playgroud)
是"数字"(第二种情况)和那
nrow(dat)
Run Code Online (Sandbox Code Playgroud)
大于1(第三种情况).
最后,dataR中的函数最好使用不同的名称,我在这里做过.