这是一个特殊的“合并小标题”案例。我的可复制示例如下。我有以下小标题:
> tb1
# A tibble: 4 x 2
# Groups: symbol [2]
symbol tarima
<chr> <dbl>
1 A 59.5
2 A 61.7
3 AA 33.1
4 AA 32.5
5 AAL 49.6
6 AAL 51.6
> tb2
# A tibble: 6 x 4
# Groups: symbol [3]
symbol open high low
<chr> <dbl> <dbl> <dbl>
1 A 60.8 61.2 60.8
2 A 60.3 60.5 59.1
3 AA 32.4 33 32.3
4 AA 33.6 34 32.8
我想获得输出:
# A tibble: 4 x 5
# Groups: symbol [2]
symbol open high low tarima
<chr> <dbl> <dbl> <dbl> <dbl>
1 A 60.8 61.2 60.8 59.5
2 A 60.3 60.5 59.1 61.7
3 AA 32.4 33 32.3 33.1
4 AA 33.6 34 32.8 32.5
我必须保持相同的顺序。
如果有人可以帮助我解决这个问题,我将不胜感激
答案 0 :(得分:1)
tidyverse
的可能性:
bind_cols(df2, df1 %>%
filter(symbol %in% df2$symbol)) %>%
select(-symbol1)
symbol open high low tarima
1 A 60.8 61.2 60.8 59.5
2 A 60.3 60.5 59.1 61.7
3 AA 32.4 33.0 32.3 33.1
4 AA 33.6 34.0 32.8 32.5
它从df1中的“符号”中筛选出不在df2中的“符号”中的值,并按列绑定两个df。
答案 1 :(得分:1)
也许我来晚了,但我希望它对其他任何人都有用
我认为您可以使用dyplr
提供的联接功能来实现所需的功能。
使用right_join可以编写:
new_tb <- right_join(tb1, tb2, by="symbol")
这应该保留tb2的所有行和tb1的所有列,并在变量“ symbol”的值与两者匹配时合并小标题。