@@ -30,23 +30,35 @@ remove_field <- function(list, param){
3030
3131strip_pts <- function (list , param ){
3232 out <- c()
33- # out.class <- 'numeric'
33+ out.class <- ' numeric'
3434 for (v in param ){
3535 if (v %in% names(list ) && ! inherits(list [[v ]], c(' function' ,' formula' ))) {
3636 v.vals <- list [[v ]]
3737 out <- append_keepTZ(out , v.vals , tz = attr(v.vals , ' tzone' ))
38- out.class <- ifelse(! all(is.na(v.vals )), class(v.vals ), out.class )
38+ all.na <- all(is.na(v.vals ))
39+ out.class <- ifelse(! all.na , class(v.vals ), out.class )
40+ if (all.na ){
41+ class(out ) <- out.class
42+ }
3943 } else {
4044 if (any(sapply(list , is.list ))){
4145 u.list <- unname_c(list [sapply(list , is.list )])
4246 if (v %in% names(u.list )) {
4347 v.vals <- u.list [[v ]]
4448 out <- append_keepTZ(out , v.vals , tz = attr(v.vals , ' tzone' ))
45- out.class <- ifelse(! all(is.na(v.vals )), class(v.vals ), out.class )
49+ all.na <- all(is.na(v.vals ))
50+ out.class <- ifelse(! all.na , class(v.vals ), out.class )
51+ if (all.na ){
52+ class(out ) <- out.class
53+ }
4654 } else if (any(sapply(u.list , function (x ) any(names(x ) %in% v )))) {
4755 v.vals <- u.list [[which(sapply(u.list , function (x ) any(names(x ) %in% v )))]][[v ]]
4856 out <- append_keepTZ(out , v.vals , tz = attr(v.vals , ' tzone' ))
49- out.class <- ifelse(! all(is.na(v.vals )), class(v.vals ), out.class )
57+ all.na <- all(is.na(v.vals ))
58+ out.class <- ifelse(! all.na , class(v.vals ), out.class )
59+ if (all.na ){
60+ class(out ) <- out.class
61+ }
5062 } else {
5163 out <- append_keepTZ(out , NA , tz = attr(out , " tzone" ))
5264 }
0 commit comments