r - 将一列分类变量添加到数据框中
问题描述
我有一个包含经济数据的数据框,按年(1991-2016)按行分隔。我正在尝试将分类变量“组”的列添加到数据框中,将 1991-1999 年分组到第 1 组,将 2000-2009 年分组到第 2 组,将 2010-2016 年分组到第 3 组。
我尝试使用 if/else 语句添加列。
wdi$groups <-
if(wdi$year > 1990 & wdi$year <2000) {
1
}
if else(wdi$year > 2000 & wdi$year < 2010) {
2
}
else {
3
}
我收到以下错误。
条件的长度 > 1 并且只使用第一个元素错误:“if else”中的意外'else'
解决方案
您可以通过以下方式轻松完成case_when
:
library(tidyverse)
df%>%
mutate(group = case_when(year %in% 1991:1999 ~ 1,
year %in% 2000:2009 ~ 2,
year %in% 2010:2016 ~ 3))
推荐阅读
- reactjs - 如何使用 react-native 处理自定义字体和 fontWeight
- python - 重塑(n 行 xn 列)python 列表到 pandas DataFame
- php - 将 PEM 格式的公钥传递给 openssl_pkey_get_public 会给出错误:0906D06C:PEM 例程:PEM_read_bio:no start line
- c++ - 如何将节点存储在数组 C++ 中?
- php - @ORM\ManyToOne(试图将对象而不是 int 值填充到列中的学说)
- javascript - 如何在 Node 的 Express Router 中使用两个或多个 route.js 文件?
- google-apps-script - 用于创建具有可见值的过滤器的 Google 表格脚本
- postgresql - 使用 PostgreSQL 创建类别树层次结构
- javascript - 如何在 Gatsby 中创建无边 graphql 元素?
- python - Amazon SageMaker 软最大标签必须在 [0, num_class)