我在R中有两个数据列表,我希望这两个集合中的每个数据都相互交织,这样第一个列表中的第一个数据就与第二个列表的第一个数据交织在一起。
他们都有相同的列名。它们看起来是这样的:
ind_1 ind_2 ind_3 ind_4 ind_5 ind_6 ind_7 ind_8 ind_9 ind_10 ind_11 ind_12 ind_13 ind_14 ind_15 ind_16
1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0
2 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0
3 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0
4 32 30 35 26 31 35 15 28 26 16 23 32 21 0 25 35
5 32 30 35 26 31 0 15 28 26 16 23 32 21 27 25 35
6 32 30 35 26 31 35 15 28 26 16 23 32 21 27 25 35
7 32 30 35 26 31 35 15 28 26 16 23 32 21 27 25 35
8 32 30 35 26 31 35 15 28 26 16 23 32 21 27 25 35
9 32 30 35 26 31 35 15 28 26 16 23 32 21 27 25 35所有的文件都是相当相似的,所以如果测试这个文件,您可以一遍又一遍地使用这个文件。目标是:
ind_1 ind_2 ind_3 ind_4 ind_5 ind_6 ind_7 ind_8 ind_9 ind_10 ind_11 ind_12 ind_13 ind_14 ind_15 ind_16
1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0
1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0
2 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0
2 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0
3 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0
3 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0
4 32 30 35 26 31 35 15 28 26 16 23 32 21 0 25 35
4 32 30 35 26 31 35 15 28 26 16 23 32 21 0 25 35
5 32 30 35 26 31 0 15 28 26 16 23 32 21 27 25 35
5 32 30 35 26 31 0 15 28 26 16 23 32 21 27 25 35我将R索引行数留在那里,因为它在这个可视化中保持了列的直线,但无关紧要(最左边的1,1,2,2等等)。
它只适用于一个data.frame,但不适用于数据帧列表。这就是我尝试过的:
interleaved <- lapply(new_list, function(y)
{y<-interleave(y,second_list)})其中一个数据帧列表被命名为new_list,另一个second_list。我也尝试过:
interleaved <- lapply(new_list, second_list, function(x,y)
{y<-interleave(x,y)})如果有人知道如何解决这个问题,我们将不胜感激。
发布于 2020-11-25 21:51:46
我们需要使用Map对两个list的对应元素进行interleave处理。
library(gdata)
out_lst <- Map(interleave, new_list, second_list)或者另一种选择是来自map2的purrr
library(purrr)
out_lst <- map2(new_list, second_list, interleave)https://stackoverflow.com/questions/65013190
复制相似问题