【发布时间】:2019-07-12 13:19:47
【问题描述】:
我有一个向量 v,它是为 data.table 中的每个组即时创建的,例如:
x[,i[v[1:n]], by=.(group)]
v 的长度对于每个组是不同的,所以我不能在 data.table 之外定义length(v)。
常数n给出了我感兴趣的v的最高元素。如果n <= length(v)没有问题,我可以查询
v[1:n]
但是,当n>length(v) 时,我调用了一个不存在的索引。因此,我需要一个可以在v[1:f(n)] 中使用的函数f(n),以便它返回
v[1:length(v)] if n>length(v)
v[1:n] if n<=length(v)
我可以将ifelse(.) 写入索引,但这会变得很长。我想知道是否有一个功能可以做到这一点。在 matlab 中,有一个变量 end 用于向量的长度。自己编写一个函数很困难,因为在 data.table 之外执行v 是没有意义的。
【问题讨论】:
标签: r indexing data.table