首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在for循环中索引R对象?

如何在for循环中索引R对象?
EN

Stack Overflow用户
提问于 2018-11-15 06:36:09
回答 1查看 827关注 0票数 0

我试图使用for循环来简化以下代码:

代码语言:javascript
运行
复制
a1 <- CreateSeuratObject (raw.data = a1.data)
a2 <- CreateSeuratObject (raw.data = a2.data)
a3 <- ...

我试过以下几种方法:

代码语言:javascript
运行
复制
samples <- c("a1", "a2", "a3")
samples.data <- c("a1.data", "a2.data", "a3.data")
for (i in samples) {
  for (j in samples.data) {
    i <- CreateSeuratObject(raw.data = j)    
  }
}

但是它返回以下错误:

代码语言:javascript
运行
复制
Error in base::colSums(x, na.rm = na.rm, dims = dims, ...) : 
 'x' must be an array of at least two dimensions

CreateSeuratObject函数实质上尝试读取samples.data向量,而不是在向量中索引相应的项。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 07:10:23

这里有三种做你想做的事的方法。我建议您不要使用第一种方式。

代码语言:javascript
运行
复制
samples <- c("a1", "a2", "a3")
samples.data <- c("a1.data", "a2.data", "a3.data")

for (i in seq_along(samples)) {
    assign(samples[i], CreateSeuratObject(raw.data = samples.data[i]))
}

samples_list <- vector("list", length = length(samples))
for (i in seq_along(samples)) {
  samples_list[[i]] <- CreateSeuratObject(raw.data = samples.data[i]))
}
names(samples_list) <- samples

samples_list2 <- lapply(samples.data, CreateSeuratObject)
names(samples_list2) <- samples
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53313723

复制
相关文章

相似问题

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