首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌套的for循环仅显示上次迭代

嵌套的for循环仅显示上次迭代
EN

Stack Overflow用户
提问于 2020-03-20 00:51:25
回答 1查看 61关注 0票数 1

我已经创建了一个函数,它根据两个不同列的一些唯一值来过滤数据帧。我尝试遍历单元格类型(3)的唯一值以及另一个名为Cell_line(2)的列中的唯一值。我已经创建了两个列表来保存此信息,并使用嵌套循环对每个列表进行计数。New Dataframe似乎是每个列表(cell_line和types)的最后一次迭代,并省略了其他输出。我如何也能获得这些。数据帧列表或将所有信息绑定在一起的单个数据帧都可以工作

代码语言:javascript
运行
复制
### My function takes a few arguments and gives a new dataframe
myfunction <- function(data_frame,type,Cell) {
    prism <- df2%>% 
    ungroup() %>% 
    filter(.,TYPE == type & Cell_Line == Cell) %>%
    pivot_wider(., id_cols = c("Treatment_rep","value","lipid"),
        names_from = Treatment_rep, values_from = value)
    prism$Cell_line <- Cell
    prism  
}



### I'm attempting to feed these into my function iteratively
cell_lines <- unique(df2$Cell_Line)              ## list of 3 types
types <- unique(df2$TYPE)                        ### list of 2 types




### nested loop
for (i in 1:length(types)) {
    for(j in 1: length(cell_lines)) {
        newdf <- myfunction(data_frame = df2, type = types[i], Cell = cell_lines[j])
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-03-20 01:08:23

你可以做到的

代码语言:javascript
运行
复制
dflist <- list()

for (i in 1:length(types)){
  for(j in 1: length(cell_lines)){
    newdf <- myfunction(data_frame = df2, type = types[i], Cell = cell_lines[j])
    dflist[[ length(dflist)+1 ]] <- newdf
  }
}

如果之后你想把它们都绑定在一起

代码语言:javascript
运行
复制
df_total <- do.call(rbind, datalist)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60761657

复制
相关文章

相似问题

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