我目前正在研究两组数据,这些数据提供了 02/2013 和 09/2018 之间相同金融产品的月度价格。这两个数据集没有每个产品的每个月价格,数据集 1 的数据比数据集 2 更准确。
我想找到一种方法来合并两个数据集,以获得具有最准确数据(来自 Dataset1)的结果数据集,并使用来自 Dataset 2 的可用数据完成此数据。
另外,我想知道两个数据集之间的数据重叠百分比。
假设这些是我的两个数据集的样本:
Dataset 1
201602 201603 201604
1 103.5 102.4 101.6
2 0 0 104.2
3 101.6 101.7 102
Dataset 2
201602 201603 201604
1 0 103.1 102.8
2 102.3 103.5 104.5
3 0 101.5 102.3
我想获得:
Dataset 1
`201602` `201603` `201604`
1 103.5 102.4 101.6
2 102.3 103.5 104.2
3 101.6 101.7 102
并且表明我的重叠 = 5/9 = 55.6%
我有 1000 多种金融产品,所以我正在寻找最简单的代码。
预先感谢您的帮助!
由于您希望优先于df1
overdf2
我们可以复制df1
to 的内容df3
并将df1
其中包含 0 的值替换为df2
.
df3 <- df1
df3[df3 == 0] <- df2[df3 == 0]
df3
# 201602 201603 201604
#1 103.5 102.4 101.6
#2 102.3 103.5 104.2
#3 101.6 101.7 102.0
为了计算重叠,我们可以比较两个数据中的非零值
mean((df1 != 0) == (df2 != 0)) * 100
#[1] 55.55555556
数据
df1 <- structure(list(`201602` = c(103.5, 0, 101.6), `201603` = c(102.4,
0, 101.7), `201604` = c(101.6, 104.2, 102)), class = "data.frame",
row.names = c("1", "2", "3"))
df2 <- structure(list(`201602` = c(0, 102.3, 0), `201603` = c(103.1,
103.5, 101.5), `201604` = c(102.8, 104.5, 102.3)), class = "data.frame",
row.names = c("1", "2", "3"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句