Ich versuche eine Kombination von mutate_at
und which.max
zu verwenden, um einen Datenrahmen wie unten beschrieben zu manipulieren.Verwenden von mutate_at und which.max für ausgewählte Spalten eines Datenrahmens
#This is basically what I want to achieve
df_want <- iris %>% group_by(Species) %>% mutate(Sepal.Length = Sepal.Length[which.max(Petal.Width)],
Sepal.Width = Sepal.Width[which.max(Petal.Width)])
#Here is my attempt at a smarter solution, but it does not work
df_attempt <- iris %>% group_by(Species) %>% mutate_at(c("Sepal.Length", "Sepal.Width"), function(x) x[which.max("Petal.Width")])
#However, this works
df_test <- iris %>% group_by(Species) %>% mutate_at(c("Sepal.Length", "Sepal.Width"), function(x) x + 100)
Der Code df_attempt
zu produzieren funktioniert nicht. Ich erhalte die folgende Fehlermeldung:
Error in mutate_impl(.data, dots) :
Column `Sepal.Length` must be length 50 (the group size) or one, not 0
Irgendwelche Ideen, wie ich noch, um dieses während bekommen mutate_at
mit?
Der gewünschte Ausgang df_want ist. – udden2903