3

私はいくつかのリストを持っています:たとえば、list1、list2、....そして list 100 と function myfun。これらで、私は走ることができますMap(myfun,list1,list2,...,list100)。ただ、リスト番号を全部書くのは避けたいので、やってみMap(myfun,mget(paste0("list",1:100)))ました。しかし、これはうまくいきませんでした。リストが 3 つだけの再現可能な例を以下に示します。

x1<-list(1:10,10:20)
x2<-list(0:9,11:20)
x3<-list(100:109,41:50)

Map(rbind,x1,x2,x3) #ok
mget(paste0("x",1:3)) #ok
Map(rbind,mget(paste0("x",1:3))) #ok but the unexpected output

Map(rbind,mget(paste0("x",1:3)))
$x1
     [,1]       [,2]      
[1,] Integer,10 Integer,10

$x2
     [,1]       [,2]      
[1,] Integer,10 Integer,10

$x3
     [,1]       [,2]      
[1,] Integer,10 Integer,10
4

1 に答える 1

4

mgetは、各リストを個別のベクトルとして に解析するのではなく、リストのリストを返します ( 「値」?mgetの下を参照) 。それに対処する可能な方法は、リストを元の要素に戻し、次にそれらを次のようにすることです。MapReducerbind

Reduce(function(...) Map(rbind, ...), mget(paste0("x", 1:3)))
于 2015-03-01T20:41:37.707 に答える