r - 计算带有缺失值中断的数据范围 - R

标签 r missing-data

我的数据示例如下:

site<-c("A","B","C","D")
year1<-c(1990,1990,1990,1990)
year2<-c("",1991,1991,1991)
year3<-c(1992,1992,1992,1992)
year4<-c(1993,"",1993,"")
year5<-c(1994,1994,1994,1994)
dat<-data.frame(site,year1,year2,year3,year4,year5)

我想计算每行(或本例中的站点)的数据范围,但我想包括存在缺失值的中断。

因此创建一个类似于这样的列。

dat$year_range<-c("1990, 1992-1994","1990-1992, 1994","1990-1994","1990-1992, 1994")

谢谢。

最佳答案

这是一个建议,我想可以用更简单的方式完成:

dat$year_range <- apply(dat[-1], 1, function(x) {
  x <- as.integer(x)
  paste(tapply(x[!is.na(x)], cumsum(is.na(x))[!is.na(x)], function(y) 
    paste(unique(range(y)), collapse = "-")), collapse = ", ")
})

#   site year1 year2 year3 year4 year5      year_range
# 1    A  1990        1992  1993  1994 1990, 1992-1994
# 2    B  1990  1991  1992        1994 1990-1992, 1994
# 3    C  1990  1991  1992  1993  1994       1990-1994
# 4    D  1990  1991  1992        1994 1990-1992, 1994

关于r - 计算带有缺失值中断的数据范围 - R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078688/

相关文章:

r - 如何计算随机森林的OOB?

r - 在 R 中线性估算缺失值

r - FELM + Stargazer - 将工具变量估计与 OLS 对齐

R:如何在没有辅助文件的情况下将光栅写入磁盘?

r - 根据斜率更改ggplot中的线条颜色

python - 按键用先前或后续值填充缺失值

r - 警告 : Factor contains implicit NA

r - 缺失数据的相关性测试

mysql - 用不连续的日期更新年度变化

python - Numpy 与 Pandas 不一致的结果和缺失值