【发布时间】:2021-08-13 18:28:23
【问题描述】:
我希望能够从一个数据帧中获取一些值并将它们插入另一个数据帧(两者具有相同数量的具有相同标题的列)
我希望数据帧 1 中每一行的值根据匹配的时间戳替换数据帧 2 中的值。
对于大多数行/时间戳,我希望原始数据保留在数据帧 1 中,因此这仅适用于一组特定时间戳(数据帧 2 中的时间戳)
dplyr 能以某种方式解决这个问题吗?
【问题讨论】:
我希望能够从一个数据帧中获取一些值并将它们插入另一个数据帧(两者具有相同数量的具有相同标题的列)
我希望数据帧 1 中每一行的值根据匹配的时间戳替换数据帧 2 中的值。
对于大多数行/时间戳,我希望原始数据保留在数据帧 1 中,因此这仅适用于一组特定时间戳(数据帧 2 中的时间戳)
dplyr 能以某种方式解决这个问题吗?
【问题讨论】:
加入data.table 可能更容易。获取除'timestamp'列('nm1' - 注意这里我们假设列名相同)之外的第一个数据集的列名,通过'timestamp'列加入on并分配相应的列(i. ) 从第二个数据集中匹配 'timestamp' 列
library(data.table)
nm1 <- setdiff(names(df1), "timestamp")
nm2 <- paste0("i.", nm1)
setDT(df1)[df2, (nm1) := mget(nm2), on = .(timestamp)]
【讨论】: