我有下表:
| 列1|第2列|第3列|第4列|
| - -|- -|- -|- -|
| 一个|2个|一个|四个|
| 五个|六个|六个|三个|
我的目标是找出每一行的最大值,然后找出它在同一行中重复了多少次。
结果表应如下所示:
| 列1|第2列|第3列|第4列|最大瓦尔|重复,重复|
| - -|- -|- -|- -|- -|- -|
| 一个|2个|一个|四个|四个|一个|
| 五个|六个|六个|三个|六个|2个|
为了实现这一点,我为Max做了以下工作:
df%>% rowwise%>%
mutate(max=max(col1:col4))
然而,我正在努力寻找重复。我的想法是在mutate中使用以下伪代码:sum(“全选当前行或只选部分列”==max)。但我不知道如何选择整行或只选择其中的部分列并使用其内容进行检查,即:它等于max吗?我们怎么在dplyr中做这个?
3条答案
按热度按时间qnakjoqk1#
dplyr方法:
基于R方法:
bqf10yzr2#
对于其他(非tidyverse)读者,基数R方法可以是:
输出量:
d5vmydt93#
尽管dplyr增加了许多跨行数据处理的工具,但至少在我看来,坚持整洁的原则并始终将数据转换为“long”格式以进行此类操作要容易得多。
因此,这里有一个tidy方法:
最后一个
select()
只用于按您希望的顺序获取列。