1
我的任务是计算调查中四个变量的标准偏差和方差。其中两个变量是数字,但另外两个不是。我跑以下代码:r如何计算非数字数据的标准差和方差?
sapply(vclms[1:4], var)
Vclms是变量被包含在和列1到4包括所有上述变量(包括数字和其他)数据帧。我希望能够为客户提供一个错误的非数值变量的方差,而是得到了以下内容:
> sapply(vclms[1:4], var)
grosswk spend hhldsize sex
8.383855e+04 4.744934e+04 1.288881e+00 2.434469e-01
Warning messages:
1: In FUN(X[[i]], ...) :
Calling var(x) on a factor x is deprecated and will become an error.
Use something like 'all(duplicated(x)[-1L])' to test for a constant vector.
2: In FUN(X[[i]], ...) :
Calling var(x) on a factor x is deprecated and will become an error.
Use something like 'all(duplicated(x)[-1L])' to test for a constant vector.
我不知道您是否可以考虑答案的两个非数值变量(hhldsize和性别)是否正确,但我想知道它如何能够得出答案?
弃用警告是明确的:您的数据有'factor's,内部存储为'integer's。如果您的数据在这些列中是实际的“字符”,那么您应该看到“var(x $ x)中的警告:由强制引入的NAs和”NA“的差异。 – r2evans
你是正确的,对“因素”整数的数值分析很可能没有意义。 (他们*可能*是有意义的IFF基础数据是序数并且正确排序。) – r2evans