2013-12-08 84 views
0

我有data.frames(列表1)和另一个列表(列表2)与名字,我想在列表1使用的名单,但是当我用下面的循环我作为返回列表2:如何在R中设置嵌套列表中的名称?

for (j in 1:length(list1)){ 
    names(list1[[j]]) <- list2[[j]] } 

有什么建议吗?当我一个集的名字由一个它不会发生:

names(list1[[1]]) <- list2[[1]] 

下面是一个例子,如何我的两个样子(我一直在努力,包括dput我的列表中,但超出的字符数) :

>list1[1] 
$cluster.1 
$cluster.1[[1]] 
     lineNum count 
HSP90AB1  1  2 
INMT   2  1 
CKB   3  1 
NR2E1   4  1 
ME3   5  0 
FAM162A  6  1 
KIRREL2  7  0 

$cluster.1[[2]] 
     lineNum count 
HSP90AB1  1  1 
INMT   2  0 
CKB   3  0 
NR2E1   4  0 
ME3   5  1 
FAM162A  6  0 
KIRREL2  7  1 

$cluster.1[[3]] 
     lineNum count 
HSP90AB1  1  1 
INMT   2  0 
CKB   3  0 
NR2E1   4  0 
ME3   5  1 
FAM162A  6  0 
KIRREL2  7  0 

$cluster.1[[4]] 
     lineNum count 
HSP90AB1  1  1 
INMT   2  0 
CKB   3  0 
NR2E1   4  0 
ME3   5  0 
FAM162A  6  0 
KIRREL2  7  0 

$cluster.1[[5]] 
     lineNum count 
HSP90AB1  1  0 
INMT   2  1 
CKB   3  1 
NR2E1   4  0 
ME3   5  0 
FAM162A  6  0 
KIRREL2  7  0 

$cluster.1[[6]] 
     lineNum count 
HSP90AB1  1  1 
INMT   2  0 
CKB   3  0 
NR2E1   4  0 
ME3   5  0 
FAM162A  6  0 
KIRREL2  7  0 

$cluster.1[[7]] 
     lineNum count 
HSP90AB1  1  0 
INMT   2  1 
CKB   3  0 
NR2E1   4  0 
ME3   5  0 
FAM162A  6  0 
KIRREL2  7  0 

>list2[1] 
$cluster.1 
[1] "HSP90AB1" "INMT"  "CKB"  "NR2E1" "ME3"  "FAM162A" "KIRREL2" 

回答

0

的问题造成的,因为在列表2的名字,如果我用数字来代替列表2的名称问题消失

+1

。你能把它写成更完整的解决方案吗? –

1

在你的榜样,在list2字符串是相同的列名数据帧在list1。因此,修改名称的另一种方法是使用`unname()`来修改名称,即

names(list1[[1]]) <- rownames(list1[[1]][[1]])