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/cn.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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP