r - 不能使用 grepl 和 mutate 函数
问题描述
问题:我正在尝试使用 mutate、ifelse 和 grepl 函数从歌词 3 中提取数据。每年存储艺术家姓名、歌词和记录的地方。我正在尝试创建一个名为“十年”的新变量,并每年按十年存储。简单地说,1980-1989 就是 1980 年代等等。但相反,函数将所有内容重命名为 2010 年代,并给我一个问题陈述,说“参数‘模式’的长度 > 1,并且只使用第一个元素”下面是我的代码:
lyrics3 <-lyrics3 %>%
mutate(decade = ifelse(grepl("198", year), "1980s",
ifelse(grepl("199", year), "1990s",
ifelse(grepl("200", year), "2000s", "2010s"))))
解决方案
您是否考虑过使用 case_when() 函数?
library(tidyverse)
df <- data.frame(lyrics = c("a", "b", "c", "d"),
Year = c(1986, 1992, 2004, 2015))
df <- df %>%
mutate(Decade = case_when(
grepl("198", Year) ~ "1980s",
grepl("199", Year) ~ "1990s",
grepl("200", Year) ~ "2000s",
TRUE ~ as.character(Year)
))
推荐阅读
- javascript - 如何检测 sessionStorage 是否会死?
- flutter - 更改切换按钮颤动的图标
- c# - syncfusion DataGridView C#中的彩色文本搜索
- javascript - 防止 Angular 中 .push() 中的元素 id 重复
- python - Python检索文件复制位置的文件路径
- react-native - React-Native 导航无法解析模块
- python - “检查是否断开进程的长时间运行连接”
- python - 使用python解析.xml文件:搜索和复制相关数据
- java - 最后一圈:圆桌骑士
- python - 如何在列表中找到所有局部最大值和最小值