【问题标题】:apply function for indexing in r在 r 中应用用于索引的函数
【发布时间】:2015-05-03 23:16:30
【问题描述】:

我有一个向量V<-1:10

我想多次选择V的三个元素。 例如 第一次,我会选择前三个元素a[1:3], 第二次,我想选择a[2:4], 第三次,a[7:9] 输出将是
[1,] 2 3 8
[2,] 3 4 9
[3,] 4 5 10

任何技巧都更快,如果我多次重复这个子设置过程,它真的很慢。或者如何使用 apply 函数族来解决这些问题。我目前的解决方案是
Index <- function(id, DM) DM[id] Metrix <- apply(b,2,Index, a)
其中 b 如下:
[1,] 1 2 7
[2,] 2 3 8
[3,] 3 4 9

有人可以使用内置函数代替我自己的索引函数吗?

【问题讨论】:

  • 能否根据a显示预期输出
  • 喜欢 a1 a2
    [1,] 1 2
    [2,] 2 3
    [3,] 3 4
  • 具体说明您想在子向量上实现什么,否则这是一个开放式问题。
  • 我的问题已经改了,谢谢

标签: r indexing apply subset


【解决方案1】:

您可以使用 zoo 包中的 rollapply

zoo::rollapply(a, 3, FUN=identity)

当然,如果您想使用这些值来计算特定的东西,您可以指定不同的函数。

zoo::rollapply(a, 3, FUN=paste0, collapse='.')
zoo::rollapply(a, 3, FUN=function(x) x[3] - x[2] - x[1])

【讨论】:

  • 是的,我可以用 apply 来做到这一点,但是任何技巧都不能做一个函数
  • 我会尝试使用替换函数“[
猜你喜欢
  • 2018-08-30
  • 2015-11-17
  • 2015-11-21
  • 1970-01-01
  • 2021-04-13
  • 2022-11-30
  • 2021-12-20
  • 2020-06-07
  • 1970-01-01
相关资源
最近更新 更多