繁体   English   中英

在 R 中交错两个 data.frames 的 data.frames

[英]Interleaving two data.frames of data.frames in R

我在 R 中有两个数据帧列表。 我希望这两组中的每个 dataframe 相互交错,以便第一个列表中的第一个 dataframe 与第二个列表的第一个 dataframe 交错。

它们都具有相同的列名。 它们看起来像这样:

  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)})

如果有人知道如何解决这个问题,将不胜感激。

我们需要使用Mapinterleave两个list的相应元素

library(gdata)
out_lst <- Map(interleave, new_list, second_list)

或者另一个选项是来自purrrmap2

library(purrr)
out_lst <- map2(new_list, second_list, interleave)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM