r - dplyr 改变列范围的行列最大值

标签 r dplyr

我可以使用以下内容返回最多 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)))

关于r - dplyr 改变列范围的行列最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978458/

相关文章:

r - 如何在 R 中识别不以特定模式开头的行

r - 在每个方面更改选项

sql-server - 如何使用 dplyr 连接 SQL Server 中表中多列的字符串?

r - 将用户规范作为参数传递给 Shiny 中的 dplyr

java - 从 java netbeans 使用 Runtime.getRuntime().exec 时没有结果

r - 如何在每组中选择不同数量的观察

r - 使用变量名通过 mutate 定义列内容

r - 如何使 Shiny 的 input$var 可用于 dplyr::summarise()

r - 基本的 dyplr 函数给出错误 : "check_dots_used"

删除并聚合重复项