首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >怎样才能很好地使用foreach函数?

怎样才能很好地使用foreach函数?
EN

Stack Overflow用户
提问于 2019-02-18 22:47:06
回答 1查看 49关注 0票数 1

我想在R中使用foreach()函数。

下面是我的示例代码。

代码语言:javascript
运行
复制
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"视为对象。

我怎样才能不出错地运行这段代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-18 23:11:55

您需要使用foreach(VAR="age")定义foreach,然后将其调用为data_na[,VAR]而不是data_na[,"VAR"]

此外,您还可以按如下方式定义foreach的var:

代码语言:javascript
运行
复制
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)))) 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54749762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档