首页 > 解决方案 > R:有没有办法将两个数字列之间的值匹配到“n”个小数位?

问题描述

如果我有数据框:

x <- c(554.233, 540.331, 113.541, 722.320)
y <- c(540.330, 178.132, 722.321, 342.872)
df <- data.frame(x,y)
print(df)

        x       y
1 554.233 540.330
2 540.331 178.132
3 113.541 722.321
4 722.320 342.872

为两列之间的匹配值编制索引的最佳方法是最多两个小数点(即 x 列中的 540.331 和 y 列中的 540.330 将被匹配)?一旦我提取了匹配值,我还想将 x 和 y 中的匹配值彼此相邻对齐。类似于以下内容:

        x       y
1 554.233      NA
2 540.331 540.330
3 113.541      NA
4 722.320 722.321   

我对 R 和一般编码都很陌生,因此对于任何格式错误或遗漏的信息,请提前道歉。谢谢您的帮助!

标签: r

解决方案


我们可以matchrounded 值上使用

df$y <- with(df, y[match(round(x), round(y))])
df
#        x       y
#1 554.233      NA
#2 540.331 540.330
#3 113.541      NA
#4 722.320 722.321

推荐阅读