R_Language 板


LINE

相關作者訊息已經遮蔽 想要請問一下 我現在想要進行 c[1]=a1 (已知變項) . . . c[8]=a8 以下是我寫得loop a1=2 a2=3 a3=4 a4=5 a5=6 a6=7 a7=8 a8=9 c=1:8 t=data.frame(c) attach(t) for(i in 1:8) c[i] <- (paste('a',i,sep="")) 但沒想到c都變成文字的a1 而非變項內容 我想要的是如何把一些規律的變項 變成一個data.frame 這樣我才可以對這個data.frame進行觀看分佈狀況 就是常用的bootstrap 的最後的步驟 不知道要怎樣修改我原本的code 或是有更快或簡單的code 可以把a1-a8 變成一個data 呢? 謝謝 -- ※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1421623009.A.29A.html
1F:推 celestialgod: sapply(1:8, function(i)get(paste0("a". i))) 01/19 08:50
2F:→ obarisk: http://r4stats.com/books/r4sas-spss/ 01/19 09:18
3F:→ obarisk: 我覺得sas和r的程式思維差很多,要把sas的思維強制加到r 01/19 09:19
4F:→ obarisk: 上,是有可能的,只是不確定有沒有人這樣做 01/19 09:19
5F:→ obarisk: 也許你可以找那本書看看,或者從更基礎的r程式思維學起 01/19 09:20
6F:→ obarisk: 否則學起來會很累 01/19 09:20
7F:→ obarisk: 我試著用以下程式回答你的問題 01/19 09:28
8F:→ obarisk: 如果你的資料可以化為2維的陣列,那data.frame是最簡單的 01/19 09:30
9F:→ obarisk: 若是每筆資料都是data.frame,那就會用到list 01/19 09:32
10F:→ obarisk: ## 產生資料 01/19 09:40
11F:→ obarisk: da <- matrix(0, 100, 8) 01/19 09:41
12F:→ obarisk: ## 每欄都是常態分配亂數 01/19 09:41
13F:→ obarisk: for(i in 1:ncol(da)){da[, i]<-rnorm(nrow(da, 0, 1))} 01/19 09:43
14F:→ obarisk: colnames(da) <- paste0('var', 1:ncol(da)) 01/19 09:44
15F:→ obarisk: ## 要對每個欄做某些事情 01/19 09:44
16F:→ obarisk: for( i in 1:ncol(da) ){ 01/19 09:45
17F:→ obarisk: do_something(da[, i]) 01/19 09:45
18F:→ obarisk: } 01/19 09:45
19F:→ obarisk: ## 沒有用到欄位名稱 01/19 09:46
20F:→ obarisk: ## 如果需要存下for迴圈內的資料 01/19 09:47
21F:→ obarisk: l1 <- list() 01/19 09:47
22F:→ obarisk: for( i in 1:ncol(da) ){ 01/19 09:47
23F:→ obarisk: l1[[i]] <- do_something(da[, i]) 01/19 09:48
24F:→ obarisk: } 01/19 09:48
25F:→ obarisk: ######################### 01/19 09:48
26F:→ obarisk: ######################### 01/19 09:48
27F:→ obarisk: 如果要用你原來的方式硬解問題,就會牽涉到NSE( 01/19 09:50
28F:→ obarisk: Non-standard evaluation),學這個要花不少心力 01/19 09:51
29F:→ obarisk: 至少要搞懂變數和字串在r中的差別,配合assign 01/19 09:51
30F:→ obarisk: eval和parse這些函式 01/19 09:51
31F:→ obarisk: 例如 01/19 09:52
32F:→ obarisk: ## 定義一個函式處理eval(parse(text='string')) 01/19 09:53
33F:→ obarisk: EV <- function(x) { eval(parse(text=x)) } 01/19 09:53
34F:→ obarisk: ## 產生變數 01/19 09:53
35F:→ obarisk: vars <- paste0('var', 1:8) 01/19 09:54
36F:→ obarisk: for( i in 1:length(vars) ){ 01/19 09:55
37F:→ obarisk: assign(vars[i], anykindofdataInR) 01/19 09:56
38F:→ obarisk: } 01/19 09:56
39F:→ obarisk: ## dosomething on vars 01/19 09:56
40F:→ obarisk: for( i in 1:length(vars) ){ 01/19 09:57
41F:→ obarisk: do_something(EV(vars[i])) 01/19 10:02
42F:→ obarisk: } 01/19 10:02
43F:→ obarisk: ################## 01/19 10:02
44F:→ obarisk: 只是上面這個方式很不像r就是了 01/19 10:03
45F:推 andrew43: 像樓上這樣寫法也有可能大幅降低運算效率。也容易犯錯。 01/19 11:53
46F:推 andrew43: 建議原po不要永久地考慮這種方式。換成R風格才容易長久 01/19 11:53
47F:推 andrew43: 使用下去。 01/19 11:53
48F:推 andrew43: 否則eval()個不停,會累死自己。 01/19 11:56
49F:→ ******: 本以為r 更有彈性一些 但好像思維差太多了 感謝推薦書籍 01/19 15:18
50F:→ ******: 最近有機會會詳讀 謝謝以上建議 01/19 15:19
51F:→ ******: 剛好學校資料庫有買這個電子書庫 01/19 15:21
52F:→ obarisk: r 已經超級有彈性了... 01/19 18:33
53F:→ gsuper: get() 好像不錯, 比邪惡的貼上短些 01/19 22:50
54F:→ Wush978: 既然要這樣寫loop, 就應該把a1 ~ a8 放到一個list中 01/20 01:19
55F:→ Wush978: 建議把list學會,然後學一下environment 01/20 01:20
56F:→ Wush978: 解這種問題就再也不用eval + parse硬幹了 01/20 01:20
57F:推 celestialgod: 改變儲存資料的方式,才是活用R的方式。 01/20 13:31
58F:→ celestialgod: 直接讀入資料為data. frame,不要事後用迴圈處理。 01/20 13:32
59F:推 obarisk: list和 env大好 01/20 18:07
※ 編輯: celestialgod (36.233.51.224), 11/20/2016 14:57:44







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP