我们可以将第二行第四列的元素作为
iris[2,4]
如果我有一个切片元素的向量/矩阵,如何做同样的事情。ie我能得到以下任何一个与iris[2,4]相同的输出吗?(或任何类似的东西,不创建任何临时变量(
a = c(2,4)
b = matrix(c(2,4), nrow=1)
c = list(2,4)
iris[a]
iris[b]
iris[c]
值被强制为字符,因为您使用matrix
方法进行子集设置,并且其中一列具有类字符。
我们可以通过两种方式规避这一点。要么我们事先删除字符列,
v <- c(2, 4)
m <- matrix(c(2, 4), nrow=1)
l <- list(2, 4)
iris[,-5][t(v)]
# [1] 0.2
iris[,-5][m]
# [1] 0.2
iris[,-5][do.call(cbind, l)]
# [1] 0.2
或者我们使用CCD_ 2方法进行子集设置。(iris
是data.frame
,因此两者都适用(
iris[[rev(v)]]
# [1] 0.2
iris[[rev(c(m))]]
# [1] 0.2
iris[[rev(unlist(l))]]
# [1] 0.2