首页 > 解决方案 > R:使用 mutate 函数来组合字符串

问题描述

我有一个名为data1headersyearcount.

我的示例数据如下所示:

  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 函数中添加什么代码来获得所需的输出,还是我完全偏离了标准?任何帮助表示赞赏。

感谢大家。

标签: rdplyr

解决方案


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) 
)

推荐阅读