我有一个指定的向量列表,表示源自 2 个样本“A”和“B”的事件:
l.temp <- list(
SF1_t_A = c(rep(1:10)),
SF2_t_A = c(rep(9:15)),
SF1_t_B = c(rep(8:12)))
l.temp
$SF1_t_A
[1] 1 2 3 4 5 6 7 8 9 10
$SF2_t_A
[1] 9 10 11 12 13 14 15
$SF1_t_B
[1] 8 9 10 11 12
现在我只想选择列表中来自示例“A”或“B”的元素。我可以用循环来做这件事,但是当 plyr 存在时,这违背了使用列表的意义。这是我迄今为止尝试过的方法和变体:
llply(l.temp , function(l){
if ((unlist(strsplit(names(l), "_"))[3]) == "A"){
return(l)}
})
这是我收到的错误:
Error in unlist(strsplit(names(l), "_")) :
error in evaluating the argument 'x' in selecting a method for function 'unlist':
Error in strsplit(names(l), "_") : non-character argument
对我做错的事情的帮助表示赞赏。
您可以在列表名称中找到该模式,该模式为您提供了哪些模式的索引:
grep("_A$", names(l.temp))
然后用它来子集:
l.temp[grep("_A$", names(l.temp))]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)