#pivot
Вопрос:
Я пытаюсь использовать аргумент values_fn в pivot_wider для применения функции к определенным столбцам при наличии нескольких значений. Использование набора данных iris в качестве примера:
iris.long lt;- iris %gt;% mutate(seq = rep(1:75, each = 2)) %gt;% select(-Petal.Length, -Petal.Width) %gt;% pivot_longer(-c("Species", "seq"), names_to = "Name", values_to = "Value") gt; print(iris.long) # A tibble: 300 x 4 Species seq Name Value lt;fctgt; lt;intgt; lt;chrgt; lt;dblgt; 1 setosa 1 Sepal.Length 5.1 2 setosa 1 Sepal.Width 3.5 3 setosa 1 Sepal.Length 4.9 4 setosa 1 Sepal.Width 3 5 setosa 2 Sepal.Length 4.7 6 setosa 2 Sepal.Width 3.2 7 setosa 2 Sepal.Length 4.6 8 setosa 2 Sepal.Width 3.1 9 setosa 3 Sepal.Length 5 10 setosa 3 Sepal.Width 3.6 # ... with 290 more rows
Теперь , когда я пытаюсь использовать именованный список для values_fn
, он по-прежнему выдает мне вывод списка и вместо агрегирования нескольких значений:
iris.long %gt;% pivot_wider(id_cols = c("Species", "seq"), names_from = "Name", values_from = "Value", values_fn = list(Sepal.Length = mean, Sepal.Width = min)) # A tibble: 75 x 4 Species seq Sepal.Length Sepal.Width lt;fctgt; lt;intgt; lt;listgt; lt;listgt; 1 setosa 1 lt;dbl [2]gt; lt;dbl [2]gt; 2 setosa 2 lt;dbl [2]gt; lt;dbl [2]gt; 3 setosa 3 lt;dbl [2]gt; lt;dbl [2]gt; 4 setosa 4 lt;dbl [2]gt; lt;dbl [2]gt; 5 setosa 5 lt;dbl [2]gt; lt;dbl [2]gt; 6 setosa 6 lt;dbl [2]gt; lt;dbl [2]gt; 7 setosa 7 lt;dbl [2]gt; lt;dbl [2]gt; 8 setosa 8 lt;dbl [2]gt; lt;dbl [2]gt; 9 setosa 9 lt;dbl [2]gt; lt;dbl [2]gt; 10 setosa 10 lt;dbl [2]gt; lt;dbl [2]gt; # ... with 65 more rows Warning message: Values are not uniquely identified; output will contain list-cols. * Use `values_fn = list` to suppress this warning. * Use `values_fn = length` to identify where the duplicates arise * Use `values_fn = {summary_fun}` to summarise duplicates
Кто-нибудь может помочь, пожалуйста? Очень признателен.