将列表隐藏到R中的非索引向量中

时间:2015-08-23 13:29:16

标签: r list vector type-conversion

我有以下表格的列表

[[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时会工作。

1 个答案:

答案 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"))