r - R:使用 mutate 函数来组合字符串
问题描述
我有一个名为data1
headersyear
和count
.
我的示例数据如下所示:
Year Count
1 2005 3000
2 2006 4000
3 2007 5000
4 2008 6000
我在数据中添加了另一列,计算出每年的增长。这是我的代码:
data1growth <- data1 %>%
mutate(Growth = Count - lag(Count))
我希望能够添加另一个名为 period 的列,以便获得以下输出:
Year Count Growth Period
1 2005 3000 NA NA
2 2006 4000 1000 2005-2006
3 2007 5000 1000 2006-2007
4 2008 6000 1000 2007-2008
我应该在 mutate 函数中添加什么代码来获得所需的输出,还是我完全偏离了标准?任何帮助表示赞赏。
感谢大家。
解决方案
library(dplyr)
data1 %>%
mutate(
Growth = Count - lag(Count),
period = if_else(
row_number() > 1,
paste0(lag(Year), "-", Year),
NA_character_
)
)
# Year Count Growth period
# 1 2005 3000 NA <NA>
# 2 2006 4000 1000 2005-2006
# 3 2007 5000 1000 2006-2007
# 4 2008 6000 1000 2007-2008
可重现的数据
data1 <- data.frame(
Year = seq(2005L, 2008L, 1L),
Count = seq(3000L, 6000L, 1000L)
)
推荐阅读
- python - 错误:找不到满足要求的版本 tensorflow==2.1.0 和 No matching distribution found for tensorflow==2.1.0
- powershell - 将存档 zip 文件解压缩到与存档 zip 文件同名的文件夹中
- realm - keycloak API 出现 403 错误
- angular - 当 JSON 字段名称中有空格时,将来自 Web 服务的 JSON 响应映射到 Angular 类
- javascript - 在反应本机导航屏幕之间切换时,PanGesture 动画不起作用
- reactjs - 将 CRA 捆绑到单个 js 文件中
- python - Pyspark:为什么 ST_intersects 函数返回重复的行?
- c# - 在 Swashbuckle 5 中显示模型内部 IFormFile 的上传按钮
- ios - ios swift中注销后如何调用appdelegate.swift?
- java - 我们可以在 for 循环中定义未知数量的具有不同输出的可点击文本吗?