Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以将R中的变量添加到一起?_R - Fatal编程技术网

有没有一种方法可以将R中的变量添加到一起?

有没有一种方法可以将R中的变量添加到一起?,r,R,我想把两个数字变量strike1和Booket1加在一起,得到一个“抗议”变量,用于解释每种抗议类型。举个例子,这个新变量的第一个值应该是:2:3598。 我在其他变量上使用了下面的方法,它起了作用,有人知道这次会发生什么,结果会有所不同吗 >table(strike strike Not at all Once Twice 2055

我想把两个数字变量strike1和Booket1加在一起,得到一个“抗议”变量,用于解释每种抗议类型。举个例子,这个新变量的第一个值应该是: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

要获得所需的输出,请尝试TableTrike+TableBoude。这将给你一个总数,显示有多少人对罢工作出了反应,加上对抵制作出反应的人数。不过,我有点难以理解这是在测量什么

这也不会像罢工和抵制那样在个人层面进行衡量。如果你想用一个变量来衡量抗议活动的总体参与度,你最好做些类似的事情

删除1+1你原来的方法


在原始变量的比例上删除1+1/2你所做的是两两相加。当罢工1和抵制1都等于1时,您只能得到2。如果罢工1[i]==1,抵制1[i]==2,则抗议[i]==3。取决于你到底想做什么,假设你的观察结果是成对的,这实际上可能就是你想要的

要获得您期望的答案,您需要执行以下操作:

protest <-  table( 2 * strike1 ) + table( 2 * boycott1 )  
但我要提醒大家不要这样做,因为至少在我看来,这并没有什么意义。再说一次,关于你的目标,我可能遗漏了一些东西

另外,您是否在添加罢工1和抵制1的线路中收到警告消息?比如:

In protest<-strike1+boycott1:
  longer object length is not a multiple of shorter object length

因为我认为它应该生成警告。

第一个值是2:3598吗?那是什么格式?2055+1543=3598,这不应该是第一个值吗?如果您包含一个简单的示例输入和所需输出,可以用于测试和验证可能的解决方案,这将更容易帮助您。感谢您的回答,在我看来,罢工1+抵制1的答案似乎有非常低的数字,分别考虑到罢工1和抵制1的参与。另外,当我在其他变量上做加法时,我得到了我期望的答案。你认为这些变量给出不同的答案有什么原因吗?我不认为这些数字很低,我认为你可能误解了它们。以第一个元素为例。有604人罢工+抵制=2,即604人罢工和抵制各占1;您也可以在交叉表中看到这一点。有284人的分数为3,因此284人的罢工率为1或抵制率为1,另一人的分数为2。等请注意,当您将它们添加到一起时,您将不再拥有原始变量的类别。其他变量的测量方式可能会使其总和达到您的预期值,例如Likert类型的项目。