首页 > 解决方案 > 如何将数据硬编码到数据框中?

问题描述

下面是示例数据和操作。人们会注意到,在 Month1 中,对于每个 indcode,empprevmonth 和因此 empprevmonthchg 都有一个 NA。如何将数据硬编码到这些列中。是的,我知道数据有限制,因此 NA 但如果我确实想在事后手动输入数字怎么办?这可以做到吗?

 periodyear3 <-c(2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020)
 month3<-c(1,2,3,4,5,6,1,2,3,4,5,6)
 indcode3<-c(624410,624410,624410,624410,624410,624410,72,72,72,72,72,72)
 employment3 <-c(25,25,26,27,28,29,85,86,87,88,89,90)
 wages3 <-c(10000,10001,10002,10003,10004,10005,12510,12515,12520,12520,16528,19874)

 example <- data.frame (periodyear3,month3,indcode3,employment3,wages3)


 example<- example%>%
 group_by(indcode3)%>%
 mutate(empprevmonth=lag(employment3,1),
     empprevmonthchg=(employment3-empprevmonth))

在远离这里的更大数据框中,复杂的是我们有从 2012-12-01 到 2021-07-01 的月度数据。在更大的数据集中,2012-12-01 的 empprevmonth 有一个 NA。那讲得通。现在因为第一行有一个 NA,所以第二行有一个 NA (2013-01-01)。这是我需要将数据强制放入 empprevmonth 和 empprevmonthchg 列的第二行。

标签: rdplyr

解决方案


我们可以将ie中的值更改为不同的default值以区分lagNA

library(dplyr)
example <- example%>%
  group_by(indcode3)%>%
  mutate(empprevmonth = lag(employment3,1, default = -999),
        empprevmonthchg=(employment3-empprevmonth))

推荐阅读