ifelse命令可同时跨行和跨列

时间:2019-02-19 16:24:08

标签: r if-statement aggregate multiple-columns rows

我已经汇总了数据(成组的个人会议),并希望执行ifelse命令。每个小组由不同数量的人员和会议组成。 现在,总是总是当一组的所有成员在v_165_dicho,v_166_dicho和v_167_dicho上针对相同的会议显示相同的值时,应使用表达式“ agree”创建新变量,否则应在同一变量上指示“ disagree”

但这也是一个难题:总是,当一个组成员(在一个会议内)仅在v_165_dicho上具有值1时,另一组成员在v_166_dicho变量上必须具有值1才能获得1在同意变量。这里有一些例子:

如果人员1和2在v_165_dicho变量上的值为1,在v_167变量上的值为1,并且人员3在v_166和v_167变量上的值为1,则所有成员的协议变量的值为0。

如果人员1在v_165_dicho变量上具有值1,在v_167变量上具有值1,人员2在v_166_dicho变量和v_167变量上具有值1,而人员3在v_166上具有值1。并在v_167变量上,所有成员的协议变量值都为1。

如果人员1在v_166_dicho变量上的值为1,人员2在v_167_dicho变量上的值为1,则两个组成员的协议变量的值都为0。

如果人员1在v_166_dicho变量上的值为1,人员2在v_166_dicho变量上的值为1,而在v_167变量上的值为1,则两个成员的协议变量的值都为0。

通过显示如下示例可能更容易理解:

100 --> agree
100 --> agree

111 --> disagree
000 --> disagree

111 --> disagree
110 --> disagree

101 --> disagree
100 --> disagree

010 --> agree
100 --> agree

010 --> agree
100 --> agree
010 --> agree

100 --> disagree
100 --> disagree
010 --> disagree

010 --> disagree
001 --> disagree

011 --> disagree
010 --> disagree

非常感谢!

       GroupID PersonID MeetID v_165_dicho v_166_dicho v_167_dicho
1         1      171       1           0           0           0
2         1      185       1           0           0           0
3         1      171       2           0           0           0
4         1      185       2           0           0           0
5         1      185       3           1           0           1
6         2      113       1           1           0           1
7         2      135       1           1           0           0
8         2      113       2           0           0           0
9         2      135       2           0           0           0

0 个答案:

没有答案