R 问题矩阵中的之字形模式

R 问题矩阵中的之字形模式,r,pattern-recognition,zigzag,R,Pattern Recognition,Zigzag,我正在做一项数据调查。它询问了几个关于受访者对几个项目的满意度的矩阵问题。下面是一个例子 问题1:您对A项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题2:您对B项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题3:您对C项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 问题4:您对D项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意” 数据如下所示: df <- data.frame(q1 = c("V

我正在做一项数据调查。它询问了几个关于受访者对几个项目的满意度的矩阵问题。下面是一个例子

问题1:您对A项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意”

问题2:您对B项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意”

问题3:您对C项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意”

问题4:您对D项的满意度如何?“非常满意”“有点满意”“有点不满意”“非常不满意”

数据如下所示:

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