如何在R中的嵌套列表中设置名称?

时间:2013-12-08 20:18:00

标签: r

我有一个data.frames(list1)列表和另一个列表(list2),其中包含我想在list1中使用的名称,但是当我使用以下循环时,我得到了返回list2:

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"

2 个答案:

答案 0 :(得分:1)

在您的示例中,list2中的字符串与list1中数据框的行名称相同。因此,修改名称的另一种方法是

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

答案 1 :(得分:0)

问题是由于list2上的名称引起的,如果我用数字替换list2的名称,问题就会消失