gpt4 book ai didi

r - 如何根据条件组合不等长的数据帧

转载 作者:行者123 更新时间:2023-12-04 10:31:19 25 4
gpt4 key购买 nike

我想知道如何最好地组合以下两个数据框:

df1 <- data.frame(Date = c(1,2,3,4,5,6,7,8,9,10),
Altitude=c(100,101,101,102,103,99,98,99,89,70))

> df1
Date Altitude
1 1 100
2 2 101
3 3 101
4 4 102
5 5 103
6 6 99
7 7 98
8 8 99
9 9 89
10 10 70

df2 <- data.frame(Start = c(1,4,8),Stop = c(3,7,10),Longitude=c(10,12,13))

> df2
Start Stop Longitude
1 1 3 10
2 4 7 12
3 8 10 13

我基本上需要 df2 中的第三列,经度基于日期是否在开始和停止之间,结果如下:

   Date Altitude Longitude
1 1 100 10
2 2 101 10
3 3 101 10
4 4 102 12
5 5 103 12
6 6 99 12
7 7 98 12
8 8 99 13
9 9 89 13
10 10 70 13

我一直在尝试各种子集化、过滤……但我就是想不出来。任何帮助将不胜感激!

亲切的问候

最佳答案

通过 dplyr 的一个想法是完成开始:停止序列,取消嵌套和合并,即

library(dplyr)

df2 %>%
mutate(Date = mapply(seq, Start, Stop)) %>%
tidyr::unnest() %>%
select(-c(1, 2)) %>%
right_join(df1, by = 'Date')

这给出了,

   Longitude Date Altitude
1 10 1 100
2 10 2 101
3 10 3 101
4 12 4 102
5 12 5 103
6 12 6 99
7 12 7 98
8 13 8 99
9 13 9 89
10 13 10 70

关于r - 如何根据条件组合不等长的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58433567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com