我想创建一个新列,它等于该行所有列的最大值。
这是一个例子:
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/