【发布时间】:2018-07-26 21:21:57
【问题描述】:
我是一名成长中的 R 用户,需要帮助解决我撞到的墙。
我很难找到适合我的情况的解决方案。
我必须嵌套我需要连接在一起的列表
ListA:
[abc]:
[1] 0 1 1 2
[2] 2 0 4 5
[3] 3 5 0 6
[4] 2 3 1 0
[def]
[1] 0 4 2
[2] 2 0 1
[3] 1 1 0
List B:
[abc]:
[1] 111 112 113 114
[def]:
[1] 222 223 224
这 2 个列表确实跨越 82 个表,格式相同,元素相同。这意味着我需要一个可扩展的代码,它不会手动定位每个列表或元素。
我想获取 ListB,并将其添加为 ListA 的第一列和第一行 >要么作为列/行名称,要么只是在数据本身中,如下所示:
ListC:
[abc]:
111 112 113 114
[111] 0 1 1 2
[112] 2 0 4 5
[113] 3 5 0 6
[114] 2 3 1 0
[def]:
222 223 224
[222] 0 4 2
[223] 2 0 1
[224] 1 1 0
我尝试了各种方法
mapply(cbind, ListB,ListA, SIMPLIFY=FALSE)
与
mapply(rbind, Listb,ListA, SIMPLIFY=FALSE)
我也试过
lapply(ListA, function(x){
names(x) <- ListB
df
})
还有
Map(setNames, ListA, names(ListB))
以及这些代码的各种随机迭代。
有时我可以使用列名,但不适用于行名(反之亦然),因为“总向量大小”不一样。
我错过了什么?从将 82 个列表分成数据帧并手动处理它,(这根本不是动态的)我完全被难住了!
请让我知道我需要做什么才能完成这项工作
【问题讨论】: