Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加与R中温度相关的条件为“热”或“冷”的列_R_Dplyr - Fatal编程技术网

添加与R中温度相关的条件为“热”或“冷”的列

添加与R中温度相关的条件为“热”或“冷”的列,r,dplyr,R,Dplyr,我想创建一个新列,条件是temperature>80在行中显示为热,否则在行中显示为冷 这是我的代码: tempcat_aq <- aq %>% group_by(aq$Temp) %>% mutate(TempCat = if(any(aq$Temp > 80) "hot" else "cold")) 我正在使用R和dplyr库中内置的空气质量数据帧 感谢您的帮助。在使用dplyr管道时不要使用$,它不需要,而且会破坏分组 li

我想创建一个新列,条件是temperature>80在行中显示为热,否则在行中显示为冷

这是我的代码:

tempcat_aq <- aq %>% group_by(aq$Temp) %>% mutate(TempCat = if(any(aq$Temp > 80) "hot" else "cold"))
我正在使用R和dplyr库中内置的空气质量数据帧

感谢您的帮助。

在使用dplyr管道时不要使用$,它不需要,而且会破坏分组

library(dplyr)
aq <- airquality

tempcat_aq <- aq %>% 
               group_by(Temp) %>% 
               mutate(TempCat = if(any(Temp > 80)) "hot" else "cold")
在使用dplyr管道时不要使用$,它不是必需的,并且会破坏分组

library(dplyr)
aq <- airquality

tempcat_aq <- aq %>% 
               group_by(Temp) %>% 
               mutate(TempCat = if(any(Temp > 80)) "hot" else "cold")

如mt1022所示,一个简单的基础ifelse就足够了:

aq$tempcat <- ifelse(aq$Temp > 80, 'hot', 'cold')

如mt1022所示,一个简单的基础ifelse就足够了:

aq$tempcat <- ifelse(aq$Temp > 80, 'hot', 'cold')

略短,不使用$:


略短,不使用$:

根据Ronak和SteveM的建议,您可以在dplyr工作流中使用ifelse

library(dplyr)

tempcat_aq <- aq %>% 
  group_by(Temp) %>% 
  mutate(TempCat = ifelse(Temp > 80, "hot","cold")))
根据Ronak和SteveM的建议,您可以在dplyr工作流中使用ifelse

library(dplyr)

tempcat_aq <- aq %>% 
  group_by(Temp) %>% 
  mutate(TempCat = ifelse(Temp > 80, "hot","cold")))

看来你需要的是ifelse或ifelse,而不是ifelse。。。else…我可以问你为什么把数据分组在这里吗?似乎你需要ifelse或if_else,而不是if else。。。还有…我可以问你为什么把数据分组在这里吗?谢谢!无论是单独使用ifelse还是if and else,或者仅仅是编写代码的一种较短的方式,在效率上有什么区别吗?我从来没有在一个巨大的数据集上进行过比较。但是R的矢量化范例指向简单的单线ifelse解决方案。谢谢!无论是单独使用ifelse还是if and else,或者仅仅是编写代码的一种较短的方式,在效率上有什么区别吗?我从来没有在一个巨大的数据集上进行过比较。但R的矢量化范式指向简单的单线ifelse解决方案。