首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sapply的子集设置结果

sapply的子集设置结果
EN

Stack Overflow用户
提问于 2014-11-03 17:05:18
回答 1查看 95关注 0票数 0

在我使用sapply之后,我得到了一个列表,我想要访问这些列表中的各个元素。到目前为止,我已经做到了:

代码语言:javascript
复制
large.list <- sapply(1:length(visit_num), function(x)  
    seq(enter.shift.want[x], to= exit.prime[x], by= 'hour'))

其中enter.shift.want和exit.prime是日期的向量。

代码语言:javascript
复制
head(large.list, 2)
[[1]]
 [1] "1982-05-17 13:00:00 PDT" "1982-05-17 14:00:00 PDT" "1982-05-17 15:00:00 PDT"
 [4] "1982-05-17 16:00:00 PDT" "1982-05-17 17:00:00 PDT" "1982-05-17 18:00:00 PDT"
 [7] "1982-05-17 19:00:00 PDT" "1982-05-17 20:00:00 PDT" "1982-05-17 21:00:00 PDT"
[10] "1982-05-17 22:00:00 PDT"

[[2]]
 [1] "1982-07-14 13:00:00 PDT" "1982-07-14 14:00:00 PDT" "1982-07-14 15:00:00 PDT"
 [4] "1982-07-14 16:00:00 PDT" "1982-07-14 17:00:00 PDT" "1982-07-14 18:00:00 PDT"
 [7] "1982-07-14 19:00:00 PDT" "1982-07-14 20:00:00 PDT" "1982-07-14 21:00:00 PDT"
[10] "1982-07-14 22:00:00 PDT"

我想让large.list1作为日期/时间的向量。那我想做的是

代码语言:javascript
复制
large.list[1]<=enter.shift.want[1] 

并得到真和假结果的向量。然后我希望泛化并对(1:length(visit_num))中的每个n执行large.list[n]<= enter.shift.want[n],并将true/falses相加。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-11-03 17:41:11

如果enter.shift.want是一个list或一个元素数量与large.list相同的vector,这里有一种方法可以将它应用于整个list

代码语言:javascript
复制
 res <- Map(`<=`, large.list, enter.shift.want)
 res1 <- Map(`<=`, large.list, enter.shift.want1) 

获取每个列表元素的TRUE总数

代码语言:javascript
复制
 colSums(do.call(cbind, res))
 #[1] 3 3

代码语言:javascript
复制
 sapply(res, sum)
 #[1] 3 3

 sapply(res1,sum)
 #[1] 3 7

数据

代码语言:javascript
复制
 large.list <- list(structure(c(390488400, 390492000, 390495600, 390499200, 
 390502800, 390506400, 390510000, 390513600, 390517200, 390520800
 ), class = c("POSIXct", "POSIXt"), tzone = "PDT"), structure(c(395499600, 
 395503200, 395506800, 395510400, 395514000, 395517600, 395521200, 
 395524800, 395528400, 395532000), class = c("POSIXct", "POSIXt"
 ), tzone = "PDT"))


 v1 <- c('1982-05-17 00:00:00', '1982-07-14 00:00:00')
 enter.shift.want <- lapply(v1, function(x) seq(as.POSIXct(x, tz='PDT'),
          length.out=10, by='3 hour'))

 enter.shift.want1 <- as.POSIXct(c('1982-05-17 15:00:00', 
                     '1982-07-14 19:00:00'), tz='PDT')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26710878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档