我有一个长列,其中包含大量分析结果(作为.txt文件,我将用R读取) . 从顶部开始,前5行是对应于Sample1的结果,5行(第6,7,8,9和10行)的第二个块对应于Sample2,依此类推,从Sample1到Sample57 . 所以,我想将这个长列分成57列,按样本分开 . 让我们从一个较小的例子开始简化问题,只使用前两个样本(因此,列只有10个值,每个5个) . 假设我们有这个列向量:
0.01
0.02
0.45
0.34
0.55
0.78
0.08
0.49
0.50
0.33
我知道前5个数字对应Sample1,第二个数字对应Sample2 . 我想做这个:
0.01 0.78
0.02 0.08
0.45 0.49
0.34 0.50
0.55 0.33
总的来说,我想将该柱状矢量转换为矩阵,其中每列长度为5行,并且这些数字的顺序与原始矢量中的顺序相同 . 它已经搜索了将一列拆分成多列的命令,但它们使用了识别字符模式的东西 . 这是一种不同的情况 . 我也发现这个关于终端Put every N rows of input into a new column,但我想知道R中是否有办法做到这一点,也许也更简单 .
有没有办法严格每5行做一次?
2 回答
我们可以使用
matrix
来构造它如果行数不是5的倍数,则使用
tidyverse
中的spread
或data.table
中的dcast
(reshape2
)数据
是的你可以做到以下几点:
其中x = nr行/ 5;在你的例子x = 2,因为你有10个观察