如何每 X 次从向量中提取 X 数量的元素
How to extract X amount of elements out of vector every X time
我有一个长度为 4800 的大字符。向量中的元素顺序不正确,因此我想更改它。
顺序应该是前96个元素,然后是第三个96个元素,然后是第五个96个元素,第七个96个元素,...直到最后96个元素。然后它后面应该是第二个96个元素,第四个96个元素,第六个96个元素,....直到最后一个96。所以基本上,提取96个元素,步长为96,直到字符结束。
所以我可以这样做:
icfinal[c(1:96,193:289,386:481,...)]
但这需要我很长时间。有谁知道如何用一个函数解决这个问题?
非常感谢!
根据您的逻辑,如果您需要前 96 个,然后是第三个,然后是第五个,我们可以这样做:
icfinal[outer(1:96, 96 * seq(0, 4800/96, 2), "+")]
我有一个长度为 4800 的大字符。向量中的元素顺序不正确,因此我想更改它。
顺序应该是前96个元素,然后是第三个96个元素,然后是第五个96个元素,第七个96个元素,...直到最后96个元素。然后它后面应该是第二个96个元素,第四个96个元素,第六个96个元素,....直到最后一个96。所以基本上,提取96个元素,步长为96,直到字符结束。
所以我可以这样做:
icfinal[c(1:96,193:289,386:481,...)]
但这需要我很长时间。有谁知道如何用一个函数解决这个问题?
非常感谢!
根据您的逻辑,如果您需要前 96 个,然后是第三个,然后是第五个,我们可以这样做:
icfinal[outer(1:96, 96 * seq(0, 4800/96, 2), "+")]