Создание функции для ввода имени и столбца данных в R - PullRequest
0 голосов
/ 21 февраля 2019

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

#fillNA values for columns
fillna_func <- function(data, col){
  df <- data.frame(rowMeans(imp_model$imp$col))
  brf <- data.frame(data[, col])
  colnames(brf) <- "col2"
  colnames(df) <- "col2"
  brf$col1 <- rownames(brf)
  df$col1 <- rownames(df)
  setDF(brf[df,col2_ :=i.col2,on=.(col1)])
  }
brfss2013$X_bmi5 <-  fillna_func(brfss2, "X_bmi5" )
brfss2013$X_bmi5 <-  fillna_func(brfss2, "pa1min_" )

Однако это трассировка, которую я получаю:

Error in rowMeans(imp_model$imp$col) : 
  'x' must be an array of at least two dimensions 
4.
stop("'x' must be an array of at least two dimensions") 
3.
rowMeans(imp_model$imp$col) 
2.
data.frame(rowMeans(imp_model$imp$col)) 
1.
fillna_func(brfss2, "X_bmi5") 

1 Ответ

0 голосов
/ 22 февраля 2019

Удалось решить эту проблему с помощью следующего кода:

fillna_func <- function(data, column){
  df <- data.frame(rowMeans(imp_model$imp[[column]]))
  brf <- data.frame(data[[column]])
  colnames(brf) <- "col2"
  colnames(df) <- "col2"
  brf$col1 <- rownames(brf)
  df$col1 <- rownames(df)
  setDF(brf[df,col2_ :=i.col2,on=.(col1)])
  }
brfss2013$X_bmi5 <-  fillna_func(brfss2, "X_bmi5" )

перенос номера столбца в этом [[]], кажется, помогает решить прямую ссылку на столбец, который я пытаюсь использовать в своей функции

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