→ obarisk: x1和x[1]不同 01/18 07:17
→ obarisk: 你用plot(t[ ,1], t[, 2])比較好 01/18 07:18
→ obarisk: 另外,圖如果沒存,用for loop不是很好用 01/18 07:19
→ ******: 請問可以提供確切的code給我參考嗎? 謝謝 01/18 16:13
→ ******: 其實我想要問的就是sas 的 %do %to macro在R如何寫這樣 01/18 17:25
→ andrew43: 改用 t[ ,1] t[ ,2] t[ ,3] t[ ,4] 來提取變數。 01/18 20:27
→ andrew43: 如果要用for loop,就是生出(1,2)和(3,4)就解決了。 01/18 20:27
→ ******: 上面說的只要變項換個順序就不能達成 我想要的是universal 01/18 21:32
→ *****: 的code 01/18 21:32
→ andrew43: 那你可以思考可以universal的條件是基於什麼? 01/18 21:38
→ andrew43: 在for loop裡,總是要指定一個vector變數。 01/18 21:38
→ andrew43: 例如你想把for變數改成其它東西,那它會是什麼? 01/18 21:39
→ andrew43: 請你說說看,這樣大家比較容易想出你真正有用的答案。 01/18 21:40
→ ******: 就是conditional 特定的variable prefix +number 01/18 22:13
→ ******: 這個prefix 在這邊就是x,y 後面變換的就是i = 1 to n 01/18 22:14
→ andrew43: 那可能沒有直接解。要先用for生出x1,x2.. y1,y2字串 01/18 22:18
→ andrew43: 應該沒有像SAS般的做法。 01/18 22:19
→ andrew43: 如果要R的風格,可能不是一個data frame而是一個list。 01/18 22:20
→ andrew43: 每個list是一個x和一個y。這樣就有現成的function了。 01/18 22:21
→ andrew43: 每個list之下 01/18 22:21
→ andrew43: 一直說錯... list之下是數個data frame或matrix 01/18 22:22
→ andrew43: 以分別表示(x1,y1), (x2,y2)。 01/18 22:22
→ aaron77217: for(i in 1:2){ 01/18 22:44
→ aaron77217: plot(t[,paste('x',i,sep="")],t[,paste('y',i,sep="" 01/18 22:45
→ aaron77217: )]) 01/18 22:46
→ aaron77217: } 01/18 22:46
→ aaron77217: 不知道這是不是你想要的方式 01/18 22:47
→ andrew43: 看起來不錯。意思是t[,"x1"]來提取t$x1。 01/18 22:57
→ andrew43: 建議中間插個 dev.new() 不然前圖會被後圖取代。 01/18 23:05
→ ******: 請問dev.new() 插入哪呢 我放在會後面似乎無法成功 01/18 23:27
→ ******: 另外我自行延伸把plot 帶入一些常見的指令像是cor 01/18 23:28
→ ******: for(i in 1:2){ cor(paste('x',i,sep=""),paste('y',i,sep 01/18 23:28
→ ******: "")]) } 01/18 23:28
→ ******: 卻無法成功 請問這個問題是? 01/18 23:29
→ ******: 最後一個問題是 像一些model 給予分析 都給予最簡易數值 01/18 23:30
→ ******: 我剛嘗試用上面的語句再寫成ci= cor(t$xi,t$yi) 01/18 23:31
→ ******: for(i in 1:2){paste('c',i,sep="")<- 01/18 23:31
→ ******: cor(t[,paste('x',i,sep="")],t[,paste('y',i,sep="")]) 01/18 23:31
→ ******: 結果失敗 請問一下有無方式可以成功呢 ? 謝謝 01/18 23:32
→ ******: 發現dev.new放在最前面就成功了 謝謝告知這個指令 01/18 23:37
→ andrew43: cor()裡要塞二個vector。 01/18 23:39
→ andrew43: 像是 cor(t[,"x1"], t[,"y1"]) 01/18 23:39
→ andrew43: 而你塞給cor()的只是字串,並不是實際數值。 01/18 23:40
→ andrew43: 猜想你沒有完全明白aaron77217板友提供的源碼。 01/18 23:41
→ andrew43: paste('x',i,sep="") 會回傳字串,而 01/18 23:42
→ andrew43: t[,paste('x',i,sep="")] 會回傳一個向量。 01/18 23:42
→ andrew43: 抱歉,沒看到後來你也試過了。 01/18 23:43
→ andrew43: 問題可能是你cor()只輸入二個點。二個點求相關係數幹嘛? 01/18 23:44
→ andrew43: 或是不只二個點,請再提供更多訊息。 01/18 23:45
→ ******: 我後來發現兩個點的確有問題 我就新增多個數值 01/19 00:07
→ aaron77217: for(i in 1:2){ 01/19 00:07
→ ******: 並且我是確定過當cor(t$x1,t$y1) 可以得到相關係數 01/19 00:08
→ ******: 才進行的 抱歉打斷推文 01/19 00:08
→ aaron77217: assign(paste("c",i,sep=""),cor(t[,paste("x",i,se 01/19 00:08
→ aaron77217: p="")],t[,paste("y",i,sep="")])) 01/19 00:09
→ aaron77217: } 01/19 00:09
→ aaron77217: @@"沒關西 試試吧 這樣就可以同步產生c1 c2了 01/19 00:10
→ ******: 感謝 測試成功 謝謝大家的教導 sas跟r的寫法在這個部份 01/19 00:10
→ ******: 差異有點大 在sas原本簡單macro 但在r這邊就思維不一樣 01/19 00:11
※ 編輯: celestialgod (36.233.51.224), 11/20/2016 14:57:36