我有一种情况,我想加入两个数据帧.该表
params描述了单位在时间和角度范围方面的参数.该表data更长,包含id,时间和角度参数.
我希望params在id匹配和时间在valid_from和valid_to之间的范围内加入param值,并且ang在data表格中的angle_begin angle_end之间.
以下是表格的示例.
params <- data.frame(id = 1:4
,valid_from = 1
,valid_to = c(10, 20, 30, 40)
,angle_begin = c(120, 90, 0, 50)
,angle_end = c(180, 170, 160, 150)
,param = c("A", "B", "C", "D"))
data <- data.frame(id = rep(1:4, each=100)
,time = rep(seq(from = 0.5, to = 50, by = 0.5), 4)
,ang = rep(runif(100, 0, 360), 4))
Run Code Online (Sandbox Code Playgroud) 假设有一个简单的数据框
data.frame(val=c(0, NA, NA, 2, NA, NA))
如果值为0,我如何仅传播该值以获得所需的数据帧:
data.frame(val=c(0, 0, 0, 2, NA, NA))
我更喜欢与tidyverse兼容的解决方案.