Getting “NA” when I run a standard deviation

空扰寡人 提交于 2020-01-11 01:50:06

问题


Quick question. I read my csv file into the variable data. It has a column label var, which has numerical values.

When I run the command

sd(data$var)

I get

[1] NA 

instead of my standard deviation.

Could you please help me figure out what I am doing wrong?


回答1:


Try sd(data$var, na.rm=TRUE) and then any NAs in the column var will be ignored. Will also pay to check out your data to make sure the NA's should be NA's and there haven't been read in errors, commands like head(data), tail(data), and str(data) should help with that.




回答2:


You probably have missing values in var, or the column is not numeric, or there's only one row.

Try removing missing values which will help for the first case:

sd(dat$var, na.rm = TRUE)

If that doesn't work, check that

class(dat$var)

is "numeric" (the second case) and that

nrow(dat)

is greater than 1 (the third case).

Finally, data is a function in R so best to use a different name, which I've done here.




回答3:


There may be Inf or -Inf as values in the data.

Try

is.finite(data)

or

min(data, na.rm = TRUE)
max(data, na.rm = TRUE)

to check if that is indeed the case.



来源:https://stackoverflow.com/questions/5739508/getting-na-when-i-run-a-standard-deviation

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!