gpt4 book ai didi

R Apply() 函数应用于特定数据帧列

转载 作者:行者123 更新时间:2023-12-03 05:28:55 26 4
gpt4 key购买 nike

我想在数据帧上使用 apply 函数,但仅将该函数应用于最后 5 列。

B<- by(wifi,(wifi$Room),FUN=function(y){apply(y, 2, A)})

这将 A 应用于 y 的所有列

B<- by(wifi,(wifi$Room),FUN=function(y){apply(y[4:9], 2, A)})

这仅将 A 应用于 y 的第 4-9 列,但 B 的总返回会剥离前 3 列...我仍然想要那些,我只是不想将 A 应用于它们。

wifi[,1:3]+B 

也没有达到我的预期/想要的效果。

最佳答案

lapply 可能是比 apply 更好的选择,因为 apply 首先将 data.frame 强制转换为数组,这意味着所有列必须具有相同的类型。根据您的具体情况,这可能会产生意想不到的后果。

模式是:

df[cols] <- lapply(df[cols], FUN)

“cols”向量可以是变量名称或索引。我更喜欢尽可能使用名称(它对列重新排序很强大)。因此,在您的情况下,这可能是:

wifi[4:9] <- lapply(wifi[4:9], A)

使用列名称的示例:

wifi <- data.frame(A=1:4, B=runif(4), C=5:8)
wifi[c("B", "C")] <- lapply(wifi[c("B", "C")], function(x) -1 * x)

关于R Apply() 函数应用于特定数据帧列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18503177/

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