首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lapply尾函数

lapply尾函数
EN

Stack Overflow用户
提问于 2017-07-10 20:17:14
回答 2查看 587关注 0票数 0

我需要提取向量的最后3行,并将结果存储在一个列表中,列表的每个部分最多包含3个元素。在此之后,我可以将结果排列在一个矩阵中。

下一个例子是:

代码语言:javascript
复制
data <- c(130,156,872,23,67,98,104)

假设我需要的最后3行数据帧的每个条目

我需要这样的结果

代码语言:javascript
复制
[1]
130
[2]
130 156
[3]
130 156 872
[4]
156 872 23
[5]
872 23 67

诸若此类。问题是:我不能像我想的那样使用lapply,因为没有像预期的那样产生结果。

我确信这是一个相当简单的问题,但我无法找到解决它的方法,而且我对此感到非常沮丧。

1和2可以看起来像NA 130的1和NA 130 156的2。

如果我需要更精确地回答我的问题,我会给出更详细的解释。

EN

回答 2

Stack Overflow用户

发布于 2017-07-10 20:28:30

使用lapply一次遍历沿data和子集的三个连续元素的索引

代码语言:javascript
复制
lapply(1:length(data), function(i) data[max(1, (i-2)):i])
#[[1]]
#[1] 130

#[[2]]
#[1] 130 156

#[[3]]
#[1] 130 156 872

#[[4]]
#[1] 156 872  23

#[[5]]
#[1] 872  23  67

#[[6]]
#[1] 23 67 98

#[[7]]
#[1]  67  98 104
票数 3
EN

Stack Overflow用户

发布于 2017-07-10 22:23:00

您还可以从包rollApply中使用rowr

代码语言:javascript
复制
rowr::rollApply(data, fun=c, window=3, align="right")
[[1]]
[1] 130

[[2]]
[1] 130 156

[[3]]
[1] 130 156 872

[[4]]
[1] 156 872  23

[[5]]
[1] 872  23  67

[[6]]
[1] 23 67 98

[[7]]
[1]  67  98 104
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45020867

复制
相关文章

相似问题

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