使用dplyr将函数应用于表的每一行?

与plyr我一起工作时,我经常发现将其用于adply必须应用于每一行的标量函数很有用。


例如


data(iris)

library(plyr)

head(

     adply(iris, 1, transform , Max.Len= max(Sepal.Length,Petal.Length))

    )

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species Max.Len

1          5.1         3.5          1.4         0.2  setosa     5.1

2          4.9         3.0          1.4         0.2  setosa     4.9

3          4.7         3.2          1.3         0.2  setosa     4.7

4          4.6         3.1          1.5         0.2  setosa     4.6

5          5.0         3.6          1.4         0.2  setosa     5.0

6          5.4         3.9          1.7         0.4  setosa     5.4

现在,我使用的dplyr更多,我想知道是否有一种整洁/自然的方式来做到这一点?因为这不是我想要的:


library(dplyr)

head(

     mutate(iris, Max.Len= max(Sepal.Length,Petal.Length))

    )

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species Max.Len

1          5.1         3.5          1.4         0.2  setosa     7.9

2          4.9         3.0          1.4         0.2  setosa     7.9

3          4.7         3.2          1.3         0.2  setosa     7.9

4          4.6         3.1          1.5         0.2  setosa     7.9

5          5.0         3.6          1.4         0.2  setosa     7.9

6          5.4         3.9          1.7         0.4  setosa     7.9


慕标5832272
浏览 660回答 3
3回答

白衣非少年

您需要按行分组:iris %>% group_by(1:n()) %>% mutate(Max.Len= max(Sepal.Length,Petal.Length))这就是在中1所做的adply。
打开App,查看更多内容
随时随地看视频慕课网APP