在理解“因子”函数时需要帮助-因子1 *tmpd> 80,标签= c“冷”,“热”

问题描述

我遇到了一个展示了mutate函数用法的命令,如下所示:

chicago = mutate(chicago,tempcat = factor(1 * (tmpd > 80),labels = c("cold","hot")))

我需要帮助来理解上面示例中的factor函数与mutate一起使用时的工作方式。

解决方法

tmpd > 80进入tmpd列,并根据温度是大于还是小于80产生TRUEFALSE的向量。

表达式1 * (tmpd > 80)对该逻辑向量执行隐式数值转换,等效于as.numeric(tmpd > 80),因此它将所有FALSE的值更改为{{ 1}},并将0的值设置为TRUE。因此,现在您有一堆1代表“冷”,0代表“热”。

但我们没有将其保留为数字,而是在其上附加了标签。为此,我们使用函数1,将表达式factor作为第一个参数,并将标签1 * (tmpd > 80)的向量作为第二个参数。因此表达式:

c("cold","hot")

创建一个类factor(1 * (tmpd > 80),labels = c("cold","hot")) 的向量,如果温度高于80,它将包含标签factor,否则将包含标签hot

将其放入cold内只是让我们告诉R我们希望将此向量作为名为mutate的列添加到数据帧tempcat

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...