【发布时间】:2019-05-15 20:54:44
【问题描述】:
我有一个数据框:
Groups Name Category value
G1 A cat1 20
G1 A cat2 1
G1 B cat3 21
G1 B cat3 23
G2 B cat4 32
G2 C cat2 23
G2 C cat2 21
我想添加一个新列consensus_category,例如:
Groups Name Category value consensus_category
G1 A cat1 20 cat2
G1 A cat2 1 cat2
G1 B cat3 21 cat2
G1 B cat3 23 cat2
G2 A cat4 32 cat4
G2 C cat2 23 cat4
G2 C cat2 21 cat4
这个想法是我有一个 vector = c("A") 对应于数据框中的特定名称
从这个名字,我想为同一Groups中的所有其他行写对应的Category,但如果在两个Categories之间有一个ex-aequo,那么获胜者就是@987654329 @ 最低的Value。 (如:
G1 A cat1 20 cat2
G1 A cat2 1 cat2
cat2 获胜,因为1 < 20
我试过了:
df %>%
group_by(Groups) %>%
add_count(Category) %>%
top_n(1, n) %>%
top_n(-1, Value) %>%
distinct(consensus_category = Category) %>%
right_join(df)
但我不知道如何指定我想要作为共识指南向量(A) 中的值。
【问题讨论】: