从两个列表中创建一个,将第二个列表值放在第一个下面

时间:2018-06-04 08:17:55

标签: r

例如,我有两个列表:

a = c(2, 3, 5) 
b = c("aa", "bb", "cc") 
c = c(TRUE, FALSE, TRUE) 
df = data.frame(a, b, c)
df1=split(df, df$b)

a = c(1, 2, 3) 
b = c("aa", "bb", "cc") 
c = c(TRUE, FALSE, TRUE) 
df2 = data.frame(a, b, c)
df3=split(df2, df2$b)

我想要一个合并的df1和df3列表:

$aa
  a  b    c
1 2 aa TRUE
4 1 aa TRUE

$bb
  a  b     c
2 3 bb FALSE
5 2 bb FALSE

$cc
  a  b    c
3 5 cc TRUE
6 3 cc TRUE

这是完整的示例数据。

df1值必须高于新列表中的df3值。

我按列表预测数据,我将时间序列列表和预测列表放在两个列表中,因此我想将它们组合在一起,添加下面的预测值。

2 个答案:

答案 0 :(得分:2)

Map(rbind, df1, df3)

$aa
a  b    c
1 2 aa TRUE
4 1 aa TRUE

$bb
  a  b     c
2 3 bb FALSE
5 2 bb FALSE

$cc
  a  b    c
3 5 cc TRUE
6 3 cc TRUE

答案 1 :(得分:0)

为什么不简单

n = c(2, 3, 5, 2, 3, 5) 
s = c("aa", "bb", "cc") 
b = c(TRUE, FALSE, TRUE,TRUE, FALSE, TRUE) 
df = data.frame(n, s, b)
df1=split(df, df$s)

a = c(1, 2, 3) 
c = c("aa", "bb", "cc") 
d = c(TRUE, FALSE, TRUE) 
df2 = data.frame(a, c, d)
df3=split(df2, df2$c)

g = c(n,a) 
h = c("aa", "bb", "cc") 
k = c(b,d)
df4 = data.frame(g, h, k)
df5=split(df4, df4$h)