[问题] (救回) loop in analysis

楼主: celestialgod (天)   2016-11-20 14:57:07
请问一下
今天我有一个资料夹 t
变项
x1 y1 x2 y2
1 46 5452 9 885
2 546 321 87 8
我想要使用一个loop 去画图
plot(t$x1, t$y1)
plot(t$x2, t$y2)
for(i in 1:2){
plot(t$x[i], t$y[i])
}
我使用以下的code,但他出现错误
我上网找了几个网站 但没有找到解答
想要请问板上的高手
是那出现错误
谢谢
作者: obarisk (OSWALT)   2015-01-18 07:17:00
x1和x[1]不同你用plot(t[ ,1], t[, 2])比较好另外,图如果没存,用for loop不是很好用
作者: andrew43 (讨厌有好心推文后删文者)   2015-01-18 20:27:00
改用 t[ ,1] t[ ,2] t[ ,3] t[ ,4] 来提取变量。如果要用for loop,就是生出(1,2)和(3,4)就解决了。那你可以思考可以universal的条件是基于什么?在for loop里,总是要指定一个vector变量。例如你想把for变量改成其它东西,那它会是什么?请你说说看,这样大家比较容易想出你真正有用的答案。那可能没有直接解。要先用for生出x1,x2.. y1,y2字串应该没有像SAS般的做法。如果要R的风格,可能不是一个data frame而是一个list。每个list是一个x和一个y。这样就有现成的function了。每个list之下一直说错... list之下是数个data frame或matrix以分别表示(x1,y1), (x2,y2)。
作者: aaron77217 (慎)   2015-01-18 22:44:00
for(i in 1:2){plot(t[,paste('x',i,sep="")],t[,paste('y',i,sep="")])}不知道这是不是你想要的方式
作者: andrew43 (讨厌有好心推文后删文者)   2015-01-18 22:57:00
看起来不错。意思是t[,"x1"]来提取t$x1。建议中间插个 dev.new() 不然前图会被后图取代。cor()里要塞二个vector。像是 cor(t[,"x1"], t[,"y1"])而你塞给cor()的只是字串,并不是实际数值。猜想你没有完全明白aaron77217板友提供的源码。paste('x',i,sep="") 会回传字串,而t[,paste('x',i,sep="")] 会回传一个向量。抱歉,没看到后来你也试过了。问题可能是你cor()只输入二个点。二个点求相关系数干嘛?或是不只二个点,请再提供更多讯息。
作者: aaron77217 (慎)   2015-01-19 00:07:00
for(i in 1:2){assign(paste("c",i,sep=""),cor(t[,paste("x",i,sep="")],t[,paste("y",i,sep="")]))}@@"没关西 试试吧 这样就可以同步产生c1 c2了

Links booklink

Contact Us: admin [ a t ] ucptt.com