【发布时间】:2018-04-20 00:19:50
【问题描述】:
m <- matrix(1:4, ncol=2)
l <- list(a=1:3, b='c')
d <- data.frame(a=1:3, b=3:1)
我想知道是否可以创建一个函数,该函数采用基本 R 对象(矩阵、向量、列表或 data.frame,...)以及指定对象子集的文本。
f1 <- function(object, subset) {
# object'subset'
}
例如
f1(m, '[1,1]') #to evaluate m[1,1]
f1(l, '[[1]][2:3]') #l[[1]][2:3]
f1(d, '$a') #d$a
会给我们(分别):
[1] 1
[1] 2 3
[1] 1 2 3
我猜该函数需要在评估之前以某种方式粘合两个参数。我想可以为子集文本的每一位制作一种解释器,并且(对于矩阵示例)执行以下操作:
`[`(1,1)
这是可能的,但我认为会有更简单更直接的方法(我上面的“胶水”)。
【问题讨论】: