我有一个长度为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 ...发布于 2017-06-26 03:34:37
感谢您提供示例数据,基于这些数据,此线程是可重现的。这里有一个解决方案
c(matrix(vector, 10)[4:10, ])我们首先将向量转换为一个10行的矩阵,以便每列都属于一个参与者。然后使用行子集删除前三行。最后,矩阵再次被展平为一个向量。
发布于 2017-06-26 03:46:29
一种方法是先使用矩阵进行结构,然后再进行扁平化。另一种有点类似的方法是使用我称之为“逻辑模式索引”的方法:
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此方法也可以在双参数版本的[中使用,以使用逻辑模式索引选择行或列。这是因为R循环使用了逻辑索引。
https://stackoverflow.com/questions/44749548
复制相似问题