我可以使用以下内容返回最多2列

newiris<-iris %>%
 rowwise() %>%
 mutate(mak=max(Sepal.Width,Petal.Length))

我想做的是找到一系列列的最大值,所以我不必像这样命名每个列
newiris<-iris %>%
 rowwise() %>%
 mutate(mak=max(Sepal.Width:Petal.Length))

有任何想法吗?

最佳答案

可以使用rowwise()代替pmax

iris %>%
      mutate(mak=pmax(Sepal.Width,Petal.Length, Petal.Width))

如果要引用存储在interp中的列名,则可以使用library(lazyeval)中的vector
library(lazyeval)
nm1 <- names(iris)[2:4]
iris %>%
     mutate_(mak= interp(~pmax(v1), v1= as.name(nm1)))

08-19 21:09