gpt4 book ai didi

r - seq 和 seq_along,两全其美?

转载 作者:行者123 更新时间:2023-12-04 00:09:02 25 4
gpt4 key购买 nike

如果我想对两个向量中的所有元素进行编号,向量 1 得到所有奇数,向量 2 得到所有偶数,我可以假设向量的长度为 10。

seq(1, 10, by=2)
[1] 1 3 5 7 9

seq(2, 11, by=2)
[1] 2 4 6 8 10

但如果我的向量只有一个元素,我会遇到问题:

 seq(2)
[1] 1 2

所以我使用:

seq_along(2)
[1] 1

但我不能在 seq_long() 中使用 by=。如何通过 seq() 的功能获得 seq_along 的可靠性?


这个例子可能会澄清一些事情。

假设我有两个列表:

list1 <- list(4)
list2 <- list(4)

list1 必须沿列表元素获取偶数名称。list2 必须沿列表元素获取奇数名称。

我不知道列表元素会有多长。

seq_along(list1[[1]]) # this will know to only give one name but I cant make it even

seq(list2[[1]]) # this know to give 1 name
#and
seq(2, list1[[1]], by=2) # this gives me even but too nay names

最佳答案

这是一个向 seq_along 添加 'by' 参数的函数:

seq_along_by = function(x, by=1L, from = 1L) (seq_along(x) - 1L) * by + from

还有一些测试用例

> seq_along_by(integer(), 2L)
integer(0)
> seq_along_by(1, 2L)
[1] 1
> seq_along_by(1:4, 2L)
[1] 1 3 5 7
> seq_along_by(1:4, 2.2)
[1] 1.0 3.2 5.4 7.6
> seq_along_by(1:4, -2.2)
[1] 1.0 -1.2 -3.4 -5.6

关于r - seq 和 seq_along,两全其美?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com