R_Language 板


LINE

[软体程式类别]:R [程式问题]:for回圈不知道怎麽写比较好? [软体熟悉度]:新手 [问题叙述]: 我想问的是: 如果希望整栏的资料做多次合并,有办法用回圈写吗? 现在有一个问卷资料,题项有22栏,是由7个系共185位同学填写 资料形态如下: https://imgur.com/a/6gJdq (每个题项一共有185笔资料、共23个题项、7个系的同学填答) 这题是复选题,我必须要统计出每个系回答题项的数目分布 1.要第1栏 (系所) + 第2栏 (题项1) = 1组资料 以此类推...一共有22组资料 2.将22组资料合并,就可以统计出每个系的题项分布,於是我用图法炼钢方式写了如 (1) 但重点来了,我要问的就是: 有办法用回圈写吗? 但我用for回圈写如下面 (2), 因为没写过整组资料的合并,不知道问题出在那? 可以帮我看一下吗? (1) 图法炼钢 (确实可以正确合并,但花时间) #data名称是data31 #1使用cbind合并... r1 =cbind(data31[,1],data31[,2]) r2 =cbind(data31[,1],data31[,3]) r3 =cbind(data31[,1],data31[,4]) ..... r22 =cbind(data31[,1],data31[,23]) #2使用rbind合并,得到最後的rf大矩阵 rf = rbind(r1,r2,r3...r22) (2) for回圈 : 遇到问题 n = 22 r22 = matrix() for (i in 1:n) { ri = cbind(data31[,1],data31[,i+1]) } r22 因为这个是要把整组资料做合并,并非一个一个,所以我明知道回圈有 问题,确不知道怎麽改? 可以指点我一下吗? 我知道要给定一个矩阵让回圈储存 可是我有22组,该怎麽存起来? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.231.179
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1515229432.A.E9C.html
1F:→ clansoda: 有点看不懂,你们复选题这边不用boolean vector来存吗? 01/06 17:11
2F:→ askpeople: 楼上大大是说我的题项吗? 01/06 17:15
3F:→ askpeople: 不知道你指的是否是我的回圈中的储存r22吗? 01/06 17:16
4F:→ clansoda: 我是指分析的时候,你们都是中文的话可能会没那麽好做 01/06 17:21
5F:→ clansoda: 如果用boolean vector存复选题的题项会比较好分析 01/06 17:21
6F:→ askpeople: 喔喔 了解了,你的意思是要我把中文栏位改掉罗? 01/06 17:26
7F:→ clansoda: 你的这种存法会有很多空格吧,到时候要分析的时候 01/06 17:26
8F:→ clansoda: 会困难重重,除非你只想知道总数或比例之类的 01/06 17:27
9F:→ askpeople: 然後选项尽量不要用中文 01/06 17:27
10F:→ askpeople: 我目前只是要统计出每个系在每个选项的数目分布而已 01/06 17:28
11F:→ clansoda: 例如说你有一个复选题有20个选项 你就把column设成 01/06 17:28
12F:→ askpeople: 这篇文章的重点就是回圈写法不知怎麽改 01/06 17:28
13F:→ clansoda: 2-1, 2-2 ..... 2-20 01/06 17:28
14F:→ askpeople: 好,我会参考你说的 感谢 01/06 17:29
15F:→ celestialgod: R的stack不就可以直接完成吗.... 01/06 19:01
16F:推 celestialgod: 或是reshape2,data.table的melt 01/06 19:02
17F:→ askpeople: 对於r没很熟悉 所以套件不太清楚@@ 我去研究一下 01/06 20:56
18F:推 clsmbstu: reshape2::melt(data31, "系所") 01/07 01:08
19F:→ askpeople: 很感谢上面的几位大大指点指令与套件 01/07 11:29
20F:→ askpeople: 如果说我想练习回圈,也是有办法写吗? 01/07 11:29
21F:→ clsmbstu: 我想问题是出在 ri = cbind(data31[,1],data31[,i+1]) 01/07 12:54
22F:→ clsmbstu: R会以为你要把每次cbind的结果都存到叫"ri"的东西 01/07 12:55
23F:→ clsmbstu: assign(paste0("r",i),cbind(data31[,1],data31[,i+1])) 01/07 12:58
24F:→ clsmbstu: 这样写才会每次把结果存进不同的variable 之後才能操弄 01/07 12:59
25F:→ clsmbstu: 不过等你学会lapply等function以後 应该会更喜欢把这些 01/07 12:59
26F:→ clsmbstu: 类似格式的资料(例如rXX)全部整理进一个list 更方便 01/07 13:00
27F:→ askpeople: 之後我想把产生的r1,...r22合并 尝试用以下写法: 01/10 12:14
28F:→ askpeople: r = paste0("r",1:22) 然後lapply(r, rbind) 01/10 12:14
29F:→ askpeople: 现在是希望把r1..r22塞到cbind里面,可想不出好的方式 01/10 12:16
30F:→ askpeople: 我自己已经用melt处理过,但想增强写回圈的能力 (Orz) 01/10 12:16
31F:→ celestialgod: 能不用回圈就不要用回圈... 01/10 18:33
32F:→ celestialgod: 而且你好像没分清楚变数名称跟字串差异= = 01/10 18:33
33F:→ askpeople: 我用paste0这样,发现变成字串"r1"..所以不知道怎麽办 01/11 09:31
34F:→ askpeople: 而assign我了解了一下,知道是给变数一个数值 01/11 09:33







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

请输入看板名称,例如:e-shopping站内搜寻

TOP