r - 计算行方向最大值

标签 r data.table

我想创建一个新列,它等于该行所有列的最大值。

这是一个例子:

library(data.table)
data <- data.table(head(iris))
data[ , Species := NULL]
data

   Sepal.Length Sepal.Width Petal.Length Petal.Width
1:          5.1         3.5          1.4         0.2
2:          4.9         3.0          1.4         0.2
3:          4.7         3.2          1.3         0.2
4:          4.6         3.1          1.5         0.2
5:          5.0         3.6          1.4         0.2
6:          5.4         3.9          1.7         0.4

我在这里不能真正使用 max 函数,因为它将找到所有列的最大值,例如 data[, max_value := max(Sepal.Length ,萼片.宽度,花瓣.长度,花瓣.宽度)]。我想要的是这样的:

   Sepal.Length Sepal.Width Petal.Length Petal.Width max_value
1:          5.1         3.5          1.4         0.2       5.1
2:          4.9         3.0          1.4         0.2       4.9
3:          4.7         3.2          1.3         0.2       4.7
4:          4.6         3.1          1.5         0.2       4.6
5:          5.0         3.6          1.4         0.2       5.0
6:          5.4         3.9          1.7         0.4       5.4

最佳答案

我不会保证它的速度,但这至少避免了强制转换为矩阵:

data[,mymax:=do.call(pmax,.SD)]

关于r - 计算行方向最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909684/

相关文章:

r - 如何使用 data.table 根据条件计算列总和?

滚动连接在 data.table 中给出 NA

R:将具有不同行数的列表转换为data.frame

r - 使用ggplot boxplot进行位置躲避警告?

R:枚举矩阵的列组合

r - 为什么 data.table CJ 不尊重列主要顺序

r - 根据摘要统计过滤掉 data.table 列

r - 通过 R 中的 knitr 通过 Pandoc 将 Markdown 转换为 HTML5 幻灯片

r - ggplot2 geom_area 边缘不垂直

r - data.table 的 'j' 新添加的列应该在范围内可用