我有一个长度为1000的向量。它包含100个参与者的(数字)调查答案,因此每个参与者有10个答案。我想删除每个参与者的前三个值,以创建一个长度为700的新向量(仅包括问题4-10的答案)。
我只知道如何提取矢量的每个第n个值,但无法计算如何解决上述问题。
vector <- seq(1,1000,1)
预期产出:
4 5 6 7 8 9 10 14 15 16 17 18 19 20 24 ...
答案 0 :(得分:2)
使用矩阵首先构造然后展平是一种方法。另一种类似的方法是使用我所谓的“逻辑模式索引”:
head( # just showing the first couple of "segments"
vector[ c( rep(FALSE, 3), rep(TRUE, 10-3) ) ],
15)
[1] 4 5 6 7 8 9 10 14 15 16 17 18 19 20 24
此方法也可以在[
的两个参数版本中使用,以使用逻辑模式索引选择行ore列。这是因为R的逻辑指数的回收。
答案 1 :(得分:1)
感谢您提供示例数据,基于此数据可以重现此线程。这是一个解决方案
c(matrix(vector, 10)[4:10, ])
我们首先将向量转换为具有10行的矩阵,以便每列属于参与者。然后使用行子集来删除前三行。最后,矩阵再次扁平化为矢量。