语境
我想为一个项目构建一个两个虚拟的调查数据框架。一个数据帧对
Relationship
调查,另一个
Pulse
调查。
这是每个人的样子-
-
关系数据框
#Relationship Data
rel_data= data.frame(
TYPE=rep('Relationship',446),
SURVEY_ID = rep('SURVEY 2018 Z662700',446),
SITE_ID=rep('Z662700',446),
START_DATE= rep(as.Date('2018-07-01'),446),
END_DATE= rep(as.Date('2018-07-04'),446)
)
-
脉冲数据帧
#Pulse Data
pulse_data= data.frame(
TYPE=rep('Pulse',525),
SURVEY_ID = rep('SURVEY 2018 W554800',525),
SITE_ID=rep('W554800',525),
START_DATE= rep(as.Date('2018-04-01'),525),
END_DATE= rep(as.Date('2018-04-04'),525)
)
我的目标
我想
添加列
这两个数据帧中的每一个,基于
参考表
.
参考表包括要添加到两个调查数据框中每个数据框中的问题,以及每个问题的详细信息。这就是它的样子
-
参考表
#Reference Table - Question Bank
qbank= data.frame(QUEST_ID=c('QR1','QR2','QR3','QR4','QR5','QP1','QP2','QP3','QP4','QP5','QP6'),
QUEST_TYPE=c('Relationship','Relationship','Relationship','Relationship','Relationship',
'Pulse','Pulse','Pulse','Pulse','Pulse','Pulse'),
SCALE=c('Preference','Satisfaction','Satisfaction','Satisfaction','Preference','NPS',
'Satisfaction','Satisfaction','Satisfaction','Preference','Open-Ended'),
FOLLOWUP=c('No','No','No','No','No','No','Yes','No','Yes','No','No'))
台阶
对于每个调查数据帧(关系和脉冲),我要执行以下操作-
1)在参考表中查找各自的问题代码,并仅将这些问题添加到数据框中。例如,
关系
数据帧将只有与
TYPE = 'Relationship'
从参考表。同样适用于
脉搏
数据文件。
2)对每个问题的回答将有条件地添加到每个数据帧中。这是条件-
-
如果
SCALE = 'Preference'
在引用表中,那么响应将是
150,100,50,0 or -50
. 此外,这些数字将在
任何随机顺序。
-
如果
SCALE = 'NPS'
在引用表中,响应的范围为
0 to 10
. 生成的数字应确保
净发起人得分(NPS)等于50%。
提醒:NPS=9秒和10秒的百分比减去0到6秒的百分比。
-
如果
SCALE = 'Satisfaction'
在引用表中,响应的范围为
1 (Extremely Dissatisfied) to 5 (Extremely Satisfied)
. 生成的数字应确保
1和2的百分比等于90%。
-
如果
SCALE = 'Open-Ended'
在参考表中,然后
确保列为空
(即不包含响应)。
我的尝试
使用
this
先前为创建条件响应提出的问题以及
this
为了从引用表中添加列,我尝试解决这个问题。但我还没有找到我想要的。
任何有关这方面的意见都将非常感谢
期望输出
我想要的输出表如下-
关系数据帧输出
TYPE SURVEY_ID SITE_ID START_DATE END_DATE QR1 QR2 QR3 QR4 QR5
1 Relationship SURVEY 2018 Z662700 Z662700 2018-07-01 2018-07-04 150 5 1 2 2
2 Relationship SURVEY 2018 Z662700 Z662700 2018-07-01 2018-07-04 100 1 2 2 2
3 Relationship SURVEY 2018 Z662700 Z662700 2018-07-01 2018-07-04 100 4 5 2 2
4 Relationship SURVEY 2018 Z662700 Z662700 2018-07-01 2018-07-04 150 1 1 2 2
and so on
以及
脉冲数据帧输出
TYPE SURVEY_ID SITE_ID START_DATE END_DATE QP1 QP2 QP3 QP4 QP5 QP6
1 Pulse SURVEY 2018 W554800 W554800 2018-04-01 2018-04-04 7 1 3 3 100
2 Pulse SURVEY 2018 W554800 W554800 2018-04-01 2018-04-04 8 5 3 1 100
3 Pulse SURVEY 2018 W554800 W554800 2018-04-01 2018-04-04 3 1 4 3 100
4 Pulse SURVEY 2018 W554800 W554800 2018-04-01 2018-04-04 1 2 4 3 100
and so on