【发布时间】:2018-08-13 16:31:42
【问题描述】:
我有以下 df8 数据框:
df8=data.frame(V1=c(10,20,10,20),V2=c(20,30,20,30),V3=c(20,10,20,10))
这是每行的值出现次数:
a<-apply(df8,MARGIN=1,table)
> a
[[1]]
10 20
1 2
[[2]]
10 20 30
1 1 1
[[3]]
10 20
1 2
[[4]]
10 20 30
1 1 1
我有一个向量 - V = (0.25,0.25,0.5)
这意味着我想将每行的每个出现次数乘以每行的向量V:
我想得到这样的东西来计算(将每个不同行值的列权重相加):
[[1]]
10 20
0.25 0.5
[[2]]
10 20 30
0.5 0.25 0.25
[[3]]
10 20
0.25 0.5
[[4]]
10 20 30
0.5 0.25 0.25
现在我想为每一行选择具有最高 a*V 值的项目:
> df8
V1 V2 V3 max_val
1 10 20 20 20
2 20 30 10 10
3 10 20 20 20
4 20 30 10 10
【问题讨论】:
-
a * V?没有办法使用原子V -
这只是一个说明性示例。我想通过权重向量计算每个值的权重并找到最大总和。