我尝试使用[c(0,0,1,0,1...)]
对我的矢量进行子集化,但是在我打算用作切片器的二进制矢量中为每个“1”返回一个1的向量,而不是要被选出的预期值向左的向量。
seq(3)[as.logical(c(0,0,1))]
工作正常,但
seq(3)[c(0,0,1)]
返回1,我没想到。 只是想了解它是如何或为什么返回1而不是拉出与TRUE或1重合的值。
答案 0 :(得分:2)
它将c(0,0,1)
视为位置指示的向量。
编辑:我的意思是它是第0个元素,然后是第1个元素。在第0个元素中没有任何内容,因此您得到一个数字,它是序列的第一个元素,数字1。
如果您希望将其视为您的问题建议您可以转换为符合as.logical
的逻辑
seq(3)[as.logical(c(0,0,1))]
# [1] 3