хочу, чтобы один из параметров был переменной в моих данных при создании функции - PullRequest
0 голосов
/ 23 сентября 2019

Мой код:

SMD.dicho <- function(data,c){
  a <- nrow(subset(data,c==1 & treat==1))
  b <- nrow(subset(data,c==0 & treat==1))
  c <- nrow(subset(data,c==1 & treat==0))
  d <- nrow(subset(data,c==0 & treat==0))
  pt <- a/(a+b)
  pc <- c/(c+d)
 return (pt-pc)/((pt*(1-pt)+pc*(1-pc))/2)^{0.5}
}

SMD.dicho(brain,sex)

Мозг - это мой набор данных, c - одна из переменных в моем наборе данных, например, переменная с именем sex в моем наборе данных, чтобы указать, является ли этот человекman.however, когда я запускаю свой код, он показывает

Ошибка в факторе (c): объект 'sex' не найден

1 Ответ

2 голосов
/ 23 сентября 2019

Если вы передадите в функцию переменную без кавычек, это потребует нестандартной оценки, которая может усложнить ситуацию и может привести к путанице в начале.Не изменяя большую часть вашего текущего подхода, передайте имя столбца как символ и получите количество.

SMD.dicho <- function(data, col) {
   a <- sum(data[[col]] == 1 & data[["treat"]] == 1)
   b <- sum(data[[col]] == 0 & data[["treat"]] == 1)
   c <- sum(data[[col]] == 1 & data[["treat"]] == 0)
   d <- sum(data[[col]] == 0 & data[["treat"]] == 0)
   pt <- a/(a+b)
   pc <- c/(c+d)
   return (pt-pc)/((pt*(1-pt)+pc*(1-pc))/2)^{0.5}
}

SMD.dicho(brain,"sex")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...