我有一个关于使用基于其他两列的 mutate 函数在 dplyr 的新列中创建最小值的问题。
以下代码为新列中的每一行重复相同的值。有没有办法为新列中的每一行创建一个独立的最小值?由于速度的原因,我希望避免使用循环或应用系列,如果可能的话,我想坚持使用 dplyr。这是代码:
a = data.frame(runif(5,0,5))
b = data.frame(runif(5,0,5))
c = data.frame(runif(5,0,5))
y = cbind(a,b,c)
colnames(y) = c("a","b","c")
y = mutate(y, d = min(y$b, y$c))
y
新列“d”只是相同数字的重复。关于如何修复它以便它是每行中“b”和“c”的最小值的任何建议?
感谢您的帮助。
最佳答案
我们可以使用 pmin
y$d <- with(y, pmin(b, c))
或者
transform(y, d = pmin(b,c))
或与
dplyr
library(dplyr)
y %>%
mutate(d = pmin(b,c))
min
按列工作,假设我们想使用 min
,一个选项是y %>%
rowwise %>%
mutate(d = min(unlist(c(b,c))))
关于r - 变异以在每一行中创建最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329883/