我想将两个数字变量(strike1和boycott1)加在一起以获得一个“抗议”变量,该变量说明每种抗议类型。举个例子,这个新变量的第一个值应该是:2:3598。 我在其他变量上使用了下面的方法,它起作用了,有人知道这次不同会发生什么吗?
>table(strike
strike
Not at all Once Twice
2055 2555 840
Three times . More than three times
383 605
> table(boycott)
boycott
Not at all Once Twice
1543 2139 625
Three times . More than three times
214 426
> strike1<-as.numeric(strike)
> boycott1<-as.numeric(boycott)
> table(strike1)
strike1
1 2 3 4 5
2055 2555 840 383 605
> table(boycott1)
boycott1
1 2 3 4 5
1543 2139 625 214 426
> protest<-strike1+boycott1
> table(protest)
protest
2 3 4 5 6 7 8 9 10
604 284 895 179 193 124 72 38 93
> table(strike1, boycott1)
boycott1
strike1 1 2 3 4 5
1 604 154 31 10 35
2 130 843 83 16 19
3 21 83 98 24 13
4 3 37 45 36 12
5 7 36 23 26 93
答案 0 :(得分:0)
要获得所需的输出,请尝试使用table(strike)+ table(抵制)。这将向您显示总计对每次罢工做出回应的人数,以及对抵制做出回应的人数。但是,对我来说这很难理解。
这也不会像罢工和抵制那样在个人层面上进行衡量。如果您希望使用变量来衡量抗议活动的整体参与程度,那么最好这样做
strike1 + boycott1#您的原始方法
或
(strike1 + boycott1)/ 2#原始变量的大小
答案 1 :(得分:0)
您正在做的是成对加法。当2
和strike1
都等于boycott1
时,您只会得到1
。如果strike1[i] == 1
和boycott1[i] == 2
,则protest[i] == 3
。根据您实际要执行的操作,这实际上可能是您想要的(假设您的观察是成对的)。
要获得您期望的答案,您需要做:
protest <- table( 2 * strike1 ) + table( 2 * boycott1 )
但是我要避免这样做,因为(至少在我看来)这没有意义。再说一次,您的目标可能是我所缺少的。
此外,您在将strike1和boycott1一起添加的行中是否收到警告消息?像这样:
In protest<-strike1+boycott1:
longer object length is not a multiple of shorter object length
因为我认为它应该会生成该警告。