2016-09-13 1 views
0

Ich brauche einen Befehl, der Schleifen verwendet, um zwei verschiedene Variablen zur Zeit zu verwenden.Looping für zwei verschiedene Variablen auf einmal, Linux, UNIX

Nach dieser Logik: (dieser Befehl nicht funktioniert, es ist nur ein Beispiel):

for t1&t2 in 62&64 64&68 70&80; do 

echo "Horse $t1 and $t2" >> File.out 

done 

und das Endergebnis würde

file.out

Horse 62 and 64 
Horse 64 and 68 
Horse 70 and 80 

ich sein Möchten Sie es genauer verwenden, mit dem R-Programm wie folgt:

for t1&t2 in 62&64 64&68 70&80; do 

R -q -e "library(pastecs);d <- read.table('ageecent.txt', header = F,sep=' '); 
vart1 =var(d[,$t1]); vres_t1=vart1*0.75; 
va_t1=(vart1*0.25);vart2=var(d[,$t2]); vres_t2=vart2*0.75; 
va_t2=(vart2*0.25); cor=cor(d[,$t1],d[,$t2]); 
write.table(va_t1,'va_t1', row.names=F, col.names=F); 
write.table(vres_t1,'vres_t1',row.names=F,col.names=F); 
write.table(va_t2,'va_t2',row.names=F,col.names=F); 
write.table(vres_t2,'vres_t2',row.names=F,col.names=F); 
write.table(cor,'cor',row.names=F,col.names=F)" 

done 

Wo muss ich zwei verschiedene Variablen zu einer Zeit verwenden, t1 und t2, die die Spalten meiner Hauptdatei "ageecent.txt" definieren, die analysiert werden müssen. Vielen Dank für Ihre Aufmerksamkeit und Unterstützung.

Antwort

1

würde ich eine while Schleife in Verbindung mit read anstelle einer for Schleife verwenden:

echo -e '62 64\n64 68\n70 80' | 
    while read -r t1 t2; do 
     echo "Horse $t1 and $t2" 
    done >> File.out 

Bitte beachte, dass ich zog auch die Umleitung aus der Schleife, ist es auf diese Weise effizient.

+0

Es hat perfekt funktioniert, danke –

Verwandte Themen