I`ve得到了下面的文件10行和13列(作为一个例子,真实文件要大得多):双回路输出到一个矩阵
ID1 A B C D E F G H A B C D
ID2 1 2 3 4 5 6 7 8 9 10 11 12
ID3 A B 1 2 C 1 2 D F R T G
...
我需要创建一个新的矩阵,输入文件的8-13列放置在每4列(也有一个条件,但工作正常;问题是循环覆盖输出)。这里是循环脚本:
data=read.table("input file", h=T)
out=matrix("NA",10,12)
for(i in c(1:10)){
for(k in seq(8,13,2){
for(s in seq(1,12,4){
for(q in seq(2,12,4){
out[i,s]=data[i,k]
out[i,q]=data[i,k+1]}}}}
不幸的是,循环覆盖数据和输出矩阵(命名为“out”只有最后一列)。对于如何克服这个问题的任何建议,我将非常感激。我很乐意尝试向量作为循环可能不是最好的解决方案。
非常感谢!
为清楚起见,你可以把所需的输出为说正好位于第一行还是两个? – Gladwell
是的,对不起。这是输入文件前3行所需的输出:第一行:GH NA NA AB NA NA CD NA NA第二行:7 8 NA NA 9 10 NA NA 11 12 NA NA第三行:2 D NA NA FR不适用不适用不适用不适用(歉意格式不佳) – Tati
@Tati - 请编辑您的文章以包含该信息。评论很难阅读。 – Parfait