Sapply возвращает одинаковое значение для новой переменной в каждой строке - PullRequest
0 голосов
/ 04 ноября 2018

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 голосов
/ 04 ноября 2018

Вы пробовали применить к вектору напрямую? 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...