※ 引述《askpeople (就是要问!!!)》之铭言:
: [软件程式类别]:R
: [程式问题]:for循环不知道怎么写比较好?
: [软件熟悉度]:新手
: [问题叙述]:
: 我想问的是: 如果希望整栏的资料做多次合并,有办法用循环写吗?
: 现在有一个问卷资料,题项有22栏,是由7个系共185位同学填写
: 资料形态如下:
: https://imgur.com/a/6gJdq
: (每个题项一共有185笔资料、共23个题项、7个系的同学填答)
: 这题是复选题,我必须要统计出每个系回答题项的数目分布
: 1.要第1栏 (系所) + 第2栏 (题项1) = 1组资料
: 以此类推...一共有22组资料
: 2.将22组资料合并,就可以统计出每个系的题项分布,于是我用图法炼钢方式写了如 (1)
: 但重点来了,我要问的就是: 有办法用循环写吗? 但我用for循环写如下面 (2),
: 因为没写过整组资料的合并,不知道问题出在那? 可以帮我看一下吗?
【以下引言恕删】
这边讲的跟R无关,但跟问卷资料coding有关。如果版主觉得偏离版旨可以删文没关系 XD
在研究怎么用R处理资料之前,可能要先厘清这个问卷的设计
从你的撷图来看,这应该是一个
A. 复选题
B. 有22个子题
C. 有N个选项供受访者选择(依你的描述,N≧22)
D. 1~22个子题(可能)依序表示受访者认为每个选项的重要程度
E. 受访者最少只需要选择一个选项(所以有些资料只有题项1有内容)
以复选题来说,这并不是一个好的coding方式,会造成后续分析上很多的问题
如果还来得及的话,看原po是不是要重新整理一下资料
例如:
假设在这个复选题下共有22个选项,
把所有的选项都当成一个字段(column),总共至少就有1(系所)+22(选项)=23个字段
(虽然应该还要有一个case_id字段比较好)
丢到R里的话资料就会是一个 185*23 的dataframe
在选项的值的编码方面,如果要保留选项被受访者选择的先后次序
值的范围可以是0~22
0表示该选项未被选取(或直接coding成NA)
1~22表示被选取的先后次序(如果不考虑先后次序,那就有选取的都是1就好了)
这样就可以很直接的产生以下资料:
A. 每个选项被全部受访者选取的次数(% of none-zero values)
B. 每个选项被受访者当成第几顺位选取的比例
加上group_by系所之后就可以得到原po需要的资料了(如果我没会错意的话…)
上面这些跟量化研究方法跟问卷设计有关,但跟R没有直接的关系就是了 XD