如何整理data_frame中的巨大空白?
How to tidy huge blank spaces in data_frame?
我从网上提取了一些数据,大约有 15,000 行。日期列在每个 'block section' 数据的开头都有一个日期。其中大约 25% 是空白的。所以这是一列,其中有一个单元格是 2010 年,然后是 NA 一段时间,然后又是 2010 年。基本上,日期是一样的。 . .直到它改变。我提取了一个日期变量,它看起来像以下代码中的 Date_from 源列:
data_frame(
Date_from_source =
c(2010,rep(NA,2),2010,rep(NA,2),2011,rep(NA,3),2011,rep(NA,2),2012),
Date_tidy = c(rep(2010,6),rep(2011,7),2012))
我一直在思考如何将 Data_from_source 列编码为 Date_tidy 列。我已经尝试使用 group_by 和滞后方法,但我正在旋转我的轮子。谢谢
您正在寻找tidyr::fill
library(tidyr)
library(dplyr)
df1 <- data_frame(
Gender = sample(c('male','female'),14,T),
Date_from_source =
c(2010,rep(NA,2),2010,rep(NA,2),2011,rep(NA,3),2011,rep(NA,2),2012),
Date_tidy = c(rep(2010,6),rep(2011,7),2012))
df1 %>% group_by(Gender) %>% fill(Date_from_source)
# # A tibble: 14 x 3
# # Groups: Gender [2]
# Gender Date_from_source Date_tidy
# <chr> <dbl> <dbl>
# 1 female NA 2010
# 2 female 2011 2011
# 3 female 2011 2011
# 4 female 2011 2011
# 5 female 2011 2011
# 6 male 2010 2010
# 7 male 2010 2010
# 8 male 2010 2010
# 9 male 2010 2010
# 10 male 2010 2010
# 11 male 2010 2011
# 12 male 2010 2011
# 13 male 2010 2011
# 14 male 2012 2012
我从网上提取了一些数据,大约有 15,000 行。日期列在每个 'block section' 数据的开头都有一个日期。其中大约 25% 是空白的。所以这是一列,其中有一个单元格是 2010 年,然后是 NA 一段时间,然后又是 2010 年。基本上,日期是一样的。 . .直到它改变。我提取了一个日期变量,它看起来像以下代码中的 Date_from 源列:
data_frame(
Date_from_source =
c(2010,rep(NA,2),2010,rep(NA,2),2011,rep(NA,3),2011,rep(NA,2),2012),
Date_tidy = c(rep(2010,6),rep(2011,7),2012))
我一直在思考如何将 Data_from_source 列编码为 Date_tidy 列。我已经尝试使用 group_by 和滞后方法,但我正在旋转我的轮子。谢谢
您正在寻找tidyr::fill
library(tidyr)
library(dplyr)
df1 <- data_frame(
Gender = sample(c('male','female'),14,T),
Date_from_source =
c(2010,rep(NA,2),2010,rep(NA,2),2011,rep(NA,3),2011,rep(NA,2),2012),
Date_tidy = c(rep(2010,6),rep(2011,7),2012))
df1 %>% group_by(Gender) %>% fill(Date_from_source)
# # A tibble: 14 x 3
# # Groups: Gender [2]
# Gender Date_from_source Date_tidy
# <chr> <dbl> <dbl>
# 1 female NA 2010
# 2 female 2011 2011
# 3 female 2011 2011
# 4 female 2011 2011
# 5 female 2011 2011
# 6 male 2010 2010
# 7 male 2010 2010
# 8 male 2010 2010
# 9 male 2010 2010
# 10 male 2010 2010
# 11 male 2010 2011
# 12 male 2010 2011
# 13 male 2010 2011
# 14 male 2012 2012