在每一行中为新变量成功返回相同的值

时间:2018-11-04 13:26:29

标签: 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的每个值都是唯一的),而是在每行中返回相同的数字

我要去哪里错了?

1 个答案:

答案 0 :(得分:1)

您是否尝试过直接申请该载体? 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)