在Python中,如果a
是Numpy数组,我可以这样做:
a[..., 0]
要获取最后一个维度的第一个元素,无论shape
的{{1}}。
示例:
a
未找到基础R here中的等效词。
有没有办法在(base)R中对任何数组执行此操作?在接收任何nD数组的泛型函数中真的很有帮助。
答案 0 :(得分:1)
我们可以写自己的。这里a
必须是一个数组或一个对象,使得as.array(obj)是一个数组,i是最后一个维度的可选索引,默认为1。
last <- function(a, i = 1) {
a <- as.array(a)
ix <- lapply(dim(a), seq_len)
ix[[length(ix)]] <- i
do.call("[", c(list(a), ix))
}
# tests
a <- array(1:24, 2:4)
last(a)
m <- matrix(1:6, 2)
last(m)
last(1:3)
last(as.matrix(BOD)) # BOD is a builtin data.frame