R 在数据帧中生成具有条件值的行
我有一个2010年至2013年的数据集。但是,如果没有给定年份的信息,则该行不存在,而不是R 在数据帧中生成具有条件值的行,r,dplyr,tidyr,R,Dplyr,Tidyr,我有一个2010年至2013年的数据集。但是,如果没有给定年份的信息,则该行不存在,而不是NA行 datos <- data.frame(Country = c(rep("Australia", 3), rep("Belgium", 3)), Year = c(2010, 2011, 2013, 2010, 2011, 2013), Value = c(0.34, 0.35, 0.25, 0.30, 0.34, 0.38)) 我想要做的是:为每个国家/地区的缺失年
NA
行
datos <- data.frame(Country = c(rep("Australia", 3), rep("Belgium", 3)),
Year = c(2010, 2011, 2013, 2010, 2011, 2013),
Value = c(0.34, 0.35, 0.25, 0.30, 0.34, 0.38))
我想要做的是:为每个国家/地区的缺失年份创建行,并计算值,使之成为上一年的值
Country Year Value
1 Australia 2010 0.34
2 Australia 2011 0.35
3 Australia 2012 0.35 #New row
4 Australia 2013 0.25
5 Belgium 2010 0.30
6 Belgium 2011 0.34
7 Belgium 2012 0.34 #New row
8 Belgium 2013 0.38
这里有一个选项带有complete
library(tidyverse)
complete(datos, Country, Year = min(Year):max(Year)) %>%
fill(Value)
感谢@akrun的回答。但是,这在我的数据集上不起作用,因为它太大,fill()
扩展了数据集,重复了国家年份的组合,这对我来说没有意义。在谷歌上搜索时,我发现了来自zoo
软件包的na.locf()
library(tidyverse)
library(zoo)
complete(datos, Year = 2003:2016) %>%
na.locf()
library(tidyverse)
library(zoo)
complete(datos, Year = 2003:2016) %>%
na.locf()