gpt4 book ai didi

r - 根据数据框的行创建列

转载 作者:行者123 更新时间:2023-12-04 10:14:20 25 4
gpt4 key购买 nike

我有一个数据框。我正在尝试为给定的行创建一个最多 3 列的虚拟变量。

for(i in 1:nrow(data))
{
data[i,]$max_metric <- max(data[i,]$a,
data[i,]$b,
data[i,]$c)
}

这段代码有效,但绝对不是最好的方法。有没有其他方法可以做到这一点?

最佳答案

使用 pmax ,它采用传递给它的所有参数的元素最大值。但是,这意味着您不能只传递整个 data.frame。

# this won't work because data[,c("a","b","c")] is one argument
data$max_metric <- pmax(data[,c("a","b","c")])

但是您可以将 data.frame 的每一列传递给 pmax通过 do.call因为 do.call 的第二个参数应该是一个列表,而 data.frames 是列表(具有一些属性)。
data$max_metric <- do.call(pmax, data[,c("a","b","c")])
# if you want na.rm=TRUE
data$max_metric <- do.call(pmax, c(data[,c("a","b","c")],list(na.rm=TRUE)))

关于r - 根据数据框的行创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com