R 问题矩阵中的之字形模式
我正在做一项数据调查。它询问了几个关于受访者对几个项目的满意度的矩阵问题。下面是一个例子 问题1:您对A项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题2:您对B项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题3:您对C项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题4:您对D项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 数据如下所示:R 问题矩阵中的之字形模式,r,pattern-recognition,zigzag,R,Pattern Recognition,Zigzag,我正在做一项数据调查。它询问了几个关于受访者对几个项目的满意度的矩阵问题。下面是一个例子 问题1:您对A项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题2:您对B项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题3:您对C项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题4:您对D项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 数据如下所示: df <- data.frame(q1 = c("V
df <- data.frame(q1 = c("Very satisfied", "Somewhat satisfied", "Very satisfied", "Very satisfied", "Somewhat satisfied", "Very dissatisfied", "Very satisfied", "Very dissatisfied", "Very dissatisfied", "Somewhat dissatisfied"),
q2 = c("Somewhat satisfied", "Very satisfied", "Somewhat satisfied", "Very satisfied", "Very satisfied", "Somewhat dissatisfied", "Somewhat dissatisfied", "Somewhat dissatisfied", "Very dissatisfied", "Very dissatisfied"),
q3 = c("Very satisfied", "Somewhat satisfied", "Very satisfied", "Very satisfied", "Somewhat satisfied", "Very dissatisfied", "Very satisfied", "Very dissatisfied", "Very dissatisfied", "Somewhat dissatisfied"),
q4 = c("Somewhat satisfied", "Very satisfied", "Somewhat satisfied", "Very satisfied", "Very satisfied", "Somewhat dissatisfied", "Somewhat dissatisfied", "Somewhat dissatisfied", "Very dissatisfied", "Very dissatisfied"))
q1 q2 q3 q4
1 Very satisfied Somewhat satisfied Very satisfied Somewhat satisfied
2 Somewhat satisfied Very satisfied Somewhat satisfied Very satisfied
3 Very satisfied Somewhat satisfied Very satisfied Somewhat satisfied
4 Very satisfied Very satisfied Very satisfied Very satisfied
5 Somewhat satisfied Very satisfied Somewhat satisfied Very satisfied
6 Very dissatisfied Somewhat dissatisfied Very dissatisfied Somewhat dissatisfied
7 Very satisfied Somewhat dissatisfied Very satisfied Somewhat dissatisfied
8 Very dissatisfied Somewhat dissatisfied Very dissatisfied Somewhat dissatisfied
9 Very dissatisfied Very dissatisfied Very dissatisfied Very dissatisfied
10 Somewhat dissatisfied Very dissatisfied Somewhat dissatisfied Very dissatisfied
**提前谢谢你** 对于您提供的示例,由于q1和q3的条件在案例测试中都是相同的,您只需执行以下操作即可获得锯齿形结果:
df[with(df, q1 == "Very satisfied" &
q2 == q4 &
q3 == "Very satisfied" &
q4 %in% c( "Very dissatisfied", "Somewhat dissatisfied", "Somewhat satisfied") ), ]
r2evans已经指出了使用ifelse
的冗余性。如果您想为zigzag
结果指定一个数值,您可以更简洁地使用它,只需:
zigzag = as.numeric( case1 | case2 | case3 ) # since 1 == TRUE
您是否根据多列中的逻辑条件对项目选择进行过搜索?我很确定这已经被问到和回答了。我也希望你不要同时在推特或其他地方交叉发帖——这是大多数人都不赞成的。如果你在这里提问,请相信会有足够的眼球进入。仅供参考,
ifelse(cond,TRUE,FALSE)
与cond
(没有ifelse
)是相同的。是的,我搜索过,但以前的解决方案都不起作用。你应该发布你的全部编码工作和找到的帖子的链接。我们不知道你犯了什么错误。如果您只需要“查找”存在模式的行,那么:df[使用(df,q1%在%“非常满意”&q2%在%“稍微满意”&q3%在%“非常满意”&q4%在%“稍微满意”),]
zigzag = as.numeric( case1 | case2 | case3 ) # since 1 == TRUE