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()
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