2013-06-19 16 views
0

所以基本上我有一个大的数据帧到两列中,一个时间列和一个大小的列。然后我只有一个时间栏有另一个数据框。我想从数据帧中将时间内插到其他数据框中,然后我想要返回与插入时间相对应的大小。我可以使用R约为()函数返回一个不同的值,那么什么是被插入?

实施例:

表1:

Time 
2 
4 

表2:

Time Size 
1  40 
3  50 
5  30 

我基本上要内插 “2” 从表1中的 “1” 之间和“ 3" ,在表中的两个,并返回尺寸‘40’和‘50’

如何做到这一点使用约功能?

+1

请出示预期的输出。我不确定我是否正确理解你。 – Roland

+0

我想返回40和50,就像在列表中一样... –

+0

尝试指定'method =“constant”',只是猜测 –

回答

2

试试这个:

> Table1 <- data.frame(Time = c(2, 4)) 
> Table2 <- data.frame(Time = c(1, 3, 5), size = c(40, 50, 30)) 
> approx(Table2$Time, Table2$size, xout = Table1$Time, method = "constant") 
$x 
[1] 2 4 

$y 
[1] 40 50 

ADDED。这也可以使用动物园包这样做:

> library(zoo) 
> z2 <- read.zoo(Table2, FUN = identity) 
> na.approx(z2, xout = Table1$Time, method = "constant") 
2 4 
40 50 

今后就请写出来R中输入数据,因此它可以简单地复制并粘贴到正在运行的R对话正如我们在上面所做的。

+0

谢谢!我有一个问题寿,凡在功能你指定插的时间之前和之后返回的大小值?像你告诉它返回40和50? –

+0

'approx'总是返回两个'x'和'y'。参见'?approx'的Value部分。 –

+0

好的,但是你在哪里指定了之前和之后的部分? –

相关问题