R-计数发生次数并乘以秩

R-计数发生次数并乘以秩,r,count,dplyr,data.table,R,Count,Dplyr,Data.table,我无法复制将列表应用于事件(或计数)的方法 我一直在玩弄rowSums(),但我不知道如何在多个列上使用它,这些列也应该乘以秩(请参见下面的rank.list) 我的数据如下所示,我想做的是: 1) 计算每列发生的次数(一种通信形式) 2) 将该数字乘以给定的秩。因此,一个特定的事件可能给出+1、0或-1 3) 这将导致相关列上出现rowSums()(?) 示例:前4列,第4行: 用词(1x+1)+对抗(2x-1)+协调(17x+1)等于1-2+17=18 Bewustword

我无法复制将列表应用于事件(或计数)的方法

我一直在玩弄
rowSums()
,但我不知道如何在多个列上使用它,这些列也应该乘以秩(请参见下面的rank.list

我的数据如下所示,我想做的是:

  • 1) 计算每列发生的次数(一种通信形式)
  • 2) 将该数字乘以给定的秩。因此,一个特定的事件可能给出+1、0或-1
  • 3) 这将导致相关列上出现
    rowSums()
    (?)
示例:前4列,第4行:

用词(1x+1)+对抗(2x-1)+协调(17x+1)等于1-2+17=18

       Bewustwording Confrontatie Confrontatie.Outside Coordinerend Delegerend Goedaardig Grappig
1              1            0                    0            1          6          3       0
2              0            1                    0            3          3          0       1
3              1            0                    0            6          2          5       0
4              1            2                    0           17         22          4       0
5              0            0                    0            2          0          0       0
6              0            0                    0            4          9          7       2
7              0            0                    0           10          6          3       0
8              0            1                    0            6          1          2       1
9              1            1                    0           14         15          9       1
10             1            2                    0            9         11          1       1
我们想使用这种积极/消极的定语来确定一种特定的交流方式是否比其他情况更为现实。非常基本,但会允许更多有趣的假设继续下去,因为我们正在与许多不同的群体(或子集)合作

理想情况下,我会将这个列表放在(或任何)数据上,这些数据将使用新值(在上面的示例中为18)生成一个新列。有时排名值可能会更改或必须更正,应用更改不应花费太多精力。我可能不会这样做后,这是做了,因此容易的方式为其他人。然而,对于如何:)

输出:理想的输出,如排名(前两行)


一个
dplyr
tidyr
可能性可能是:

df %>%
 rowid_to_column() %>%
 gather(var, val, -rowid) %>%
 left_join(rank.list, by = c("var" = "Action")) %>%
 mutate(val = val * rank) %>%
 select(-rank) %>%
 group_by(rowid) %>%
 mutate(Row_sum = sum(val),
        Ranking = sum(sign(val))) %>%
 spread(var, val) %>%
 ungroup() %>%
 select(-rowid) 

   Row_sum Ranking Bewustwording Confrontatie Confrontatie.Outside Coordinerend Delegerend Goedaardig Grappig
     <int>   <dbl>         <int>        <int>                <int>        <int>      <int>      <int>   <int>
 1      11       4             1            0                    0            1          6          3       0
 2       6       2             0           -1                    0            3          3          0       1
 3      14       4             1            0                    0            6          2          5       0
 4      42       3             1           -2                    0           17         22          4       0
 5       2       1             0            0                    0            2          0          0       0
 6      22       4             0            0                    0            4          9          7       2
 7      19       3             0            0                    0           10          6          3       0
 8       9       3             0           -1                    0            6          1          2       1
 9      39       4             1           -1                    0           14         15          9       1
10      21       4             1           -2                    0            9         11          1       1
df%>%
rowid_到_列()%>%
聚集(var,val,-rowid)%>%
左联合(rank.list,by=c(“var”=“Action”))%>%
变异(val=val*rank)%>%
选择(-rank)%>%
分组依据(rowid)%>%
变异(行总和=总和(val),
排名=总和(符号(val))%>%
价差(var,val)%>%
解组()%>%
选择(-rowid)
行和排名为五行文字对峙对峙。外部协调人代表团成员Goedaarding Grappig
1      11       4             1            0                    0            1          6          3       0
2       6       2             0           -1                    0            3          3          0       1
3      14       4             1            0                    0            6          2          5       0
4      42       3             1           -2                    0           17         22          4       0
5       2       1             0            0                    0            2          0          0       0
6      22       4             0            0                    0            4          9          7       2
7      19       3             0            0                    0           10          6          3       0
8       9       3             0           -1                    0            6          1          2       1
9      39       4             1           -1                    0           14         15          9       1
10      21       4             1           -2                    0            9         11          1       1
如果要保留原始值,请执行以下操作:

df %>%
 rowid_to_column() %>%
 gather(var, val, -rowid) %>%
 left_join(rank.list, by = c("var" = "Action")) %>%
 group_by(rowid) %>%
 mutate(Row_sum = sum(val * rank),
        Ranking = sum(sign(val * rank))) %>%
 select(-rank) %>%
 spread(var, val) %>%
 ungroup() %>%
 select(-rowid) 

   Row_sum Ranking Bewustwording Confrontatie Confrontatie.Outside Coordinerend Delegerend Goedaardig Grappig
     <int>   <dbl>         <int>        <int>                <int>        <int>      <int>      <int>   <int>
 1      11       4             1            0                    0            1          6          3       0
 2       6       2             0            1                    0            3          3          0       1
 3      14       4             1            0                    0            6          2          5       0
 4      42       3             1            2                    0           17         22          4       0
 5       2       1             0            0                    0            2          0          0       0
 6      22       4             0            0                    0            4          9          7       2
 7      19       3             0            0                    0           10          6          3       0
 8       9       3             0            1                    0            6          1          2       1
 9      39       4             1            1                    0           14         15          9       1
10      21       4             1            2                    0            9         11          1       1
df%>%
rowid_到_列()%>%
聚集(var,val,-rowid)%>%
左联合(rank.list,by=c(“var”=“Action”))%>%
分组依据(rowid)%>%
变异(行总和=总和(值*秩),
排名=和(符号(val*rank)))%>%
选择(-rank)%>%
价差(var,val)%>%
解组()%>%
选择(-rowid)
行和排名为五行文字对峙对峙。外部协调人代表团成员Goedaarding Grappig
1      11       4             1            0                    0            1          6          3       0
2       6       2             0            1                    0            3          3          0       1
3      14       4             1            0                    0            6          2          5       0
4      42       3             1            2                    0           17         22          4       0
5       2       1             0            0                    0            2          0          0       0
6      22       4             0            0                    0            4          9          7       2
7      19       3             0            0                    0           10          6          3       0
8       9       3             0            1                    0            6          1          2       1
9      39       4             1            1                    0           14         15          9       1
10      21       4             1            2                    0            9         11          1       1

考虑到我们正在跨行计算加权和,一个简单的
应用可能就足够了:

##按行加权和
dat$Ranking Bewust措辞对抗对抗。外部协调人删除
#> 1              1            0                    0            1          6
#> 2              0            1                    0            3          3
#> 3              1            0                    0            6          2
#> 4              1            2                    0           17         22
#> 5              0            0                    0            2          0
#> 6              0            0                    0            4          9
#> 7              0            0                    0           10          6
#> 8              0            1                    0            6          1
#> 9              1            1                    0           14         15
#> 10             1            2                    0            9         11
#>戈达尔丁·格拉皮格排名
#> 1           3       0      11
df %>%
 rowid_to_column() %>%
 gather(var, val, -rowid) %>%
 left_join(rank.list, by = c("var" = "Action")) %>%
 mutate(val = val * rank) %>%
 select(-rank) %>%
 group_by(rowid) %>%
 mutate(Row_sum = sum(val),
        Ranking = sum(sign(val))) %>%
 spread(var, val) %>%
 ungroup() %>%
 select(-rowid) 

   Row_sum Ranking Bewustwording Confrontatie Confrontatie.Outside Coordinerend Delegerend Goedaardig Grappig
     <int>   <dbl>         <int>        <int>                <int>        <int>      <int>      <int>   <int>
 1      11       4             1            0                    0            1          6          3       0
 2       6       2             0           -1                    0            3          3          0       1
 3      14       4             1            0                    0            6          2          5       0
 4      42       3             1           -2                    0           17         22          4       0
 5       2       1             0            0                    0            2          0          0       0
 6      22       4             0            0                    0            4          9          7       2
 7      19       3             0            0                    0           10          6          3       0
 8       9       3             0           -1                    0            6          1          2       1
 9      39       4             1           -1                    0           14         15          9       1
10      21       4             1           -2                    0            9         11          1       1
df %>%
 rowid_to_column() %>%
 gather(var, val, -rowid) %>%
 left_join(rank.list, by = c("var" = "Action")) %>%
 group_by(rowid) %>%
 mutate(Row_sum = sum(val * rank),
        Ranking = sum(sign(val * rank))) %>%
 select(-rank) %>%
 spread(var, val) %>%
 ungroup() %>%
 select(-rowid) 

   Row_sum Ranking Bewustwording Confrontatie Confrontatie.Outside Coordinerend Delegerend Goedaardig Grappig
     <int>   <dbl>         <int>        <int>                <int>        <int>      <int>      <int>   <int>
 1      11       4             1            0                    0            1          6          3       0
 2       6       2             0            1                    0            3          3          0       1
 3      14       4             1            0                    0            6          2          5       0
 4      42       3             1            2                    0           17         22          4       0
 5       2       1             0            0                    0            2          0          0       0
 6      22       4             0            0                    0            4          9          7       2
 7      19       3             0            0                    0           10          6          3       0
 8       9       3             0            1                    0            6          1          2       1
 9      39       4             1            1                    0           14         15          9       1
10      21       4             1            2                    0            9         11          1       1