首页 > 解决方案 > 在 r 中插入不同大小的数据帧

问题描述

我有 2 个不同大小的数据集,但第一列中的数据是这样的

x <- data.frame(cbind(c(1,2,3,4,5,6,7,8,9,10),c(1,4,3,2,5,4,6,7,1,3)))
y <- data.frame(cbind(c(0,2,4,6,8,10),c(6,5,4,7,5,4))) 

> x
   X1 X2
1   1  1
2   2  4
3   3  3
4   4  2
5   5  5
6   6  4
7   7  6
8   8  7
9   9  1
10 10  3

> y
  X1 X2
1  0  6
2  2  5
3  4  4
4  6  7
5  8  5
6 10  4

我一直在尝试使用 approx 函数对 y 中的 X2 进行插值,但我无法找到具有不同列大小的示例。

标签: r

解决方案


您可以merge y使用公共列x并将approx其作为xout.

data.frame(X1=x$X1, X2=approx(merge(x["X1"], y, all=T)[,2], xout=x$X1)$y)
#    X1  X2
# 1   1 6.0
# 2   2 5.5
# 3   3 5.0
# 4   4 4.5
# 5   5 4.0
# 6   6 5.5
# 7   7 7.0
# 8   8 6.0
# 9   9 5.0
# 10 10 4.5

推荐阅读