2022年5月18日星期三

重命名变量和缺失值

如果对现有的变量名称不满意,你可以交互第或者以编程的方式修改他们。

假设你希望将变量名manager修改为managerID,并将date修改为testDate,可以使用语句

fix(leadership)

上述命令可以调佣一个交互式编辑器。

若以变成方式,reshape包中有一个rename()函数,可用于修改变量名,rename()函数的使用格式为:

rename(dataframe, c(oldname = "newname", oldname = "newname", …))

阅读并理解下面的示例

library(reshape)
leadership <- rename(leadership,
                   c(manager = "managerID", date = "testDate"))

缺失值

在任何规模的项目中,数据都可能由于未作答问题、设备故障或误编码数据的缘故而不完整

在R中,缺失值以符号NA表示。不可能出现的值通过符号NaN来表示

R提供了一些函数,用于识别包含缺失值的观测。函数is.na()允许你检测缺失值是否存在。

假设你有一个向量:

y <- c(1, 2, 3, NA)

然后使用函数

is.na(y)

将返回

c(FALSE, FALSE, FALSE, TRUE)

可见,is.na()函数是作用于一个对象上的。它将返回一个相同大小的对象,如果某个元素是缺失值,相应的位置将被改写为TRUE,不是缺失值的位置则返回FALSE

重新编码某些值为缺失值

可以使用赋值语句将某些值重编码为缺失值

在分析中排除缺失值

在进一步的分析数据之前以某种方式删除这些缺失值。原因是,含有缺失值的算术表达式和函数的计算结果也是缺失值。如下代码:

x <-c(1, 2, NA, 3)

y <- x[1] + x[2] + x[3] + x[4]

z <- sum(x)

事实上y和z也是NA,请思考为什么?

多数的数值函数都有一个na.rm = TRUE选项,可以在计算之前移除缺失值并使用剩余的值进行计算

y <- sum(x, na.rm = TRUE)

这里y等于6

你可以通过na.omit()移除所有含有缺失值的观测,也就是说na.omit()会删除所有含有缺失数据的行。例如下面的代码,仔细体会其区别

leadership
newdata <- na.omit(leadership)
newdata

没有评论: