在数据帧之间传输数据

时间:2014-04-01 17:58:13

标签: r function

我经常需要在数据帧之间传输数据。数据来自的数据框通常是数据所在的数据帧的较小子集。

假设我有这个数据框:

df <- data.frame(ID = c(1,3,6,9), variable = c(-0.1, 0, 0, 0.1))

  ID variable
1  1     -0.1
2  3      0.0
3  6      0.0
4  9      0.1

我需要将variabledf转移到sleep,但仅限于ID和{{1}中df相同的行}。

为此,我通常使用这样的for循环:

sleep

我正在寻找能够达到相同结果的功能,但需要更少的代码。理想情况下,我希望函数只需要3个参数:数据来自的向量,数据所在的向量以及用于匹配两个数据帧中的行的向量。

R目前有这样的功能吗?或者,任何人都可以提供这样的功能吗?

1 个答案:

答案 0 :(得分:1)

match

怎么样?
sleep <- data.frame(extra = runif(100), group = rep(1:10, each = 10), ID = rep(1:10, times = 10))

sleep$variable <- df$variable[match(sleep$ID, df$ID)]

这需要四个参数(ID重复,可以说是不必要的)。