我想在R中使用foreach()
函数。
下面是我的示例代码。
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"
视为对象。
我怎样才能不出错地运行这段代码?
发布于 2019-02-18 23:11:55
您需要使用foreach(VAR="age")
定义foreach,然后将其调用为data_na[,VAR]
而不是data_na[,"VAR"]
。
此外,您还可以按如下方式定义foreach的var:
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))))
}
https://stackoverflow.com/questions/54749762
复制相似问题