Как я могу использовать функцию foreach хорошо? - PullRequest
0 голосов
/ 18 февраля 2019

Я хотел бы использовать функцию foreach() в R.

Вот мой пример кода.

library(randomForestSRC)
library(dplyr)
library(ROCR)
library(doParallel)

data(pbc, package="randomForestSRC")

data_na <- na.omit(pbc)
data_na <- data_na %>% dplyr::select(-days)

foreach(VAR=age) %do% {
  data_na <- data_na %>%
    mutate(Q4 = ifelse(data_na[,"VAR"]<=unname(quantile(data_na[,"VAR"], 0.25)), 0,
                ifelse(data_na[,"VAR"]<=unname(quantile(data_na[,"VAR"], 0.50)), 1,
                ifelse(data_na[,"VAR"]<=unname(quantile(data_na[,"VAR"], 0.75)), 2, 3)))) 
}

Не изменяя весь код, я хочу изменить код

foreach(VAR=age) or foreach(VAR=bili)...и т.д.

Но в сообщении об ошибке этот код рассматривает "age" как объект.

Как выполнить этот код без ошибок?

1 Ответ

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

Вам необходимо определить foreach с помощью foreach(VAR="age"), а затем вызвать data_na[,VAR] вместо data_na[,"VAR"].

Также вы можете определить переменные для foreach следующим образом:

vars <- c("age", "bili") # you can include more variables here

foreach(i = 1:length(vars)) %do% {
  VAR = vars[i]
  data_na <- data_na %>%
    mutate(Q4 = ifelse(data_na[,VAR]<=unname(quantile(data_na[,VAR], 0.25)), 0,
                       ifelse(data_na[,VAR]<=unname(quantile(data_na[,VAR], 0.50)), 1,
                              ifelse(data_na[,VAR]<=unname(quantile(data_na[,VAR], 0.75)), 2, 3)))) 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...