Sapply为每行中的新变量返回相同的值

  • 本文关键字:变量 返回 新变量 Sapply r
  • 更新时间 :
  • 英文 :


Var是数据帧中的一个度量,包含105行:(零个NaN(所有唯一值。

我正试图使用sapply通过以下函数运行df$var来创建一个新变量:

df$newVar<- sapply(df$var.g, function(x) .01**(.95**(x/max(x)*100)))

df$newVar被生成并添加到df中,但它不是在每行中显示不同的数字(df$var的每个值都是唯一的(,而是在每行返回相同的数字。

我哪里错了?

您是否尝试过直接应用于向量?R是矢量化的,这样做效果非常好

custom_func <- function(x) {
0.01^(0.95^(x/max(x)*100))
}
var <- 1:10
custom_func(var)
#>  [1] 0.06346381 0.19187931 0.37215381 0.55331913 0.70163307 0.80883587
#>  [7] 0.88070937 0.92676420 0.95548367 0.97310329

直接试用df$var.g

df$newVar <- 0.01^(0.95^(df$var.g/max(df$var.g)*100))

或使用自定义功能

custom_func <- function(x) {
0.01^(0.95^(x/max(x)*100))
}
df$newVar <- custom_func(df$var.g)

最新更新