我们可以在第二行第四列获取元素
iris[2,4]
如果我有切片元素的矢量/矩阵,该怎么做。即我可以得到以下任何内容以提供与iris [2,4]相同的输出吗? (或类似的内容,而无需创建任何临时变量)
a = c(2,4)
b = matrix(c(2,4), nrow=1)
c = list(2,4)
iris[a]
iris[b]
iris[c]
答案 0 :(得分:3)
该值被强制转换为character,因为您正在使用matrix
方法进行子设置,并且其中一列属于class character。
我们可以通过两种方式来规避这一点。我们要么先删除字符列,要么
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
或者我们使用list
方法进行子设置。 (iris
是data.frame
,因此两者均适用)
iris[[rev(v)]]
# [1] 0.2
iris[[rev(c(m))]]
# [1] 0.2
iris[[rev(unlist(l))]]
# [1] 0.2