首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lapply操作列表

使用lapply操作列表
EN

Stack Overflow用户
提问于 2016-04-26 09:08:13
回答 1查看 258关注 0票数 0

我有一个名为pval的20个子列表,每个子列表pval[[i]]包含几个列。我想添加一个新的列pval[[i]]$class来标记向量causal_snp的元素是否出现在每个子列表的X4列中,如果是,则在新列中标记1,否则为0。

代码语言:javascript
复制
for (i in 1:20){
  pval[[i]]$class = ifelse(pval[[i]]$X4 %in% causal_snp, 1, 0)
  pval[[i]]$class = as.factor(pval[[i]]$classe)
}

上面的循环工作得很好,但是我想使用函数lapply而不是for循环,下面是我尝试过的,但是输出只包含每个子列表的新列:

代码语言:javascript
复制
pval_bis <- lapply(pval, function(x) x$classe=ifelse(x$X4 %in% causal_snp, 1, 0))

在lapply函数中,我可以修改哪些内容来将所有列保留在子列表中,并在每个子列表中添加新列?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 09:14:13

如果我们使用的是lapply,那么使用transform创建列

代码语言:javascript
复制
lapply(pval, transform, classe = as.integer(X4 %in% causal_snp))

在OP的代码中,在赋值之后,我们需要返回x

代码语言:javascript
复制
 lapply(pval, function(x) {x$classe=ifelse(x$X4 %in% causal_snp, 1, 0);x})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36860323

复制
相关文章

相似问题

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