gpt4 book ai didi

r - sapply 函数用很长时间从命名向量中的值填充数据框的列。有没有更快的方法?

转载 作者:行者123 更新时间:2023-12-04 11:45:44 26 4
gpt4 key购买 nike

这是我正在做的一个例子。

x <- c(a="2",b="4",c="2",d="9")
df <- data.frame(names = c("d","c","a","b"))

x 是一个命名的值向量,其顺序与它们在 df$names 中的显示顺序不同。我需要在数据框中形成一个新列,它采用 x 中的值。这是我写的。

df$vals <- sapply(df$names,function(t) x[t])

这段代码在这个玩具示例中运行良好,但我正在处理一个超过 150,000 行的数据框,这只是花费了非常长的时间。 sapply 是执行此操作的缓慢方法吗?

最佳答案

df$vals <- x[match(df$names, names(x))]

match 非常快(在本例中为 20 次以上)。

关于r - sapply 函数用很长时间从命名向量中的值填充数据框的列。有没有更快的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21528883/

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