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)