R 如何完成缺少年份和空值的时间序列?
我正在处理时间数据。R 如何完成缺少年份和空值的时间序列?,r,dataframe,time-series,dplyr,R,Dataframe,Time Series,Dplyr,我正在处理时间数据。 数据包括与年份相关的频率值 data <- data.frame(year = c(1789,1791, 1795), Freq = c(12, 56, 67)) 我的想法:创建一个包含所有年份(包括零值)的表,并将其与我的数据合并 data2 <- data.frame (year = c(1789:1795), Freq = rep(0, 7)) data2你的想法很有道理。使用plyr的这种方法将有效: df1 <
数据包括与年份相关的频率值
data <- data.frame(year = c(1789,1791, 1795),
Freq = c(12, 56, 67))
我的想法:创建一个包含所有年份(包括零值)的表,并将其与我的数据合并
data2 <- data.frame (year = c(1789:1795), Freq = rep(0, 7))
data2你的想法很有道理。使用plyr的这种方法将有效:
df1 <- join(data.frame(year = 1789:1795), df) #Left join df years to all years
df1[is.na(df1$Freq), "Freq"] <- 0 #Set NA to 0
df1使用dplyr和left_连接的方法:
library(dplyr)
data <- data.frame(year = c(1789,1791, 1795),
Freq = c(12, 56, 67))
data2 <- data.frame (year = c(1789:1795)) # , Freq = rep(0, 7)
all<- left_join(data2, data)
all
库(dplyr)
数据感谢您的想法,请参阅我的解决方案,问题末尾的“想法”说明了有效的解决方案。我不认为问观众你的问题有什么意义。这和@oshun的答案有什么不同?
library(dplyr)
data <- data.frame(year = c(1789,1791, 1795),
Freq = c(12, 56, 67))
data2 <- data.frame (year = c(1789:1795)) # , Freq = rep(0, 7)
all<- left_join(data2, data)
all