我有以下表格的列表
[[1]]
[1] "2014-09-26"
[[2]]
[1] "2013-09-27"
[[3]]
[1] "2012-09-28"
[[4]]
character(0)
但是我需要以下代码形式的
end_dates <- c("2014-09-26", "2013-09-27", "2012-09-28", "")
我不能只输入这些值,因为它们是从另一组数据计算出来的,然后在后续代码中使用,当我使用List时它会失败并且当我使用Vector时会工作。
答案 0 :(得分:1)
最好将缺失值设为NA
而不是''
。
使用if/else
条件,我们将list
元素替换为length
等于0作为NA
,然后使用do.call('c',..
end_dates <- do.call('c', lapply(lst, function(x) if(length(x)==0) NA else x))
end_dates
#[1] "2014-09-26" "2013-09-27" "2012-09-28" NA
str(end_dates)
#Date[1:4], format: "2014-09-26" "2013-09-27" "2012-09-28" NA
lst <- list(structure(16339, class = "Date"), structure(15975, class = "Date"),
structure(15611, class = "Date"), structure(numeric(0), class = "Date"))