我的问题可能没有很好地表述,听起来很复杂。但是我想要的很简单。 从给定的数据帧 Df 中,我创建了一个新的数据帧 Df1 ,其中包含每个单独列的最大值。 现在,我想在我的新数据框Df1中添加一列,并以每列的名称作为最大值。
我为此准备了一个例子。
A <- runif(5,min = 0.1, max = 3)
B <- runif(5,min = 0.1, max = 3)
C <- runif(5,min = 0.1, max = 3)
D <- runif(5,min = 0.1, max = 3)
E <- runif(5,min = 0.1, max = 3)
F <- runif(5,min = 0.1, max = 3)
Car <- c("Audi","BMW","Mercedes","Ford","Opel")
Df<-data.frame(Car,A,B,C,D,E,F)
Df1<-Df%>%
group_by(Car)%>%
summarize(max.value = max(A,B,C,D,E,F))
Df:
Df1:
我想要的:
答案 0 :(得分:1)
一个选项是
library(dplyr)
Df %>%
transmute(Car, max.value = pmax(!!! .[-1]),
rowName = names(.)[-1][max.col(.[-1])])