我经常需要在数据帧之间传输数据。数据来自的数据框通常是数据所在的数据帧的较小子集。
假设我有这个数据框:
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
我需要将variable
从df
转移到sleep
,但仅限于ID
和{{1}中df
相同的行}。
为此,我通常使用这样的for循环:
sleep
我正在寻找能够达到相同结果的功能,但需要更少的代码。理想情况下,我希望函数只需要3个参数:数据来自的向量,数据所在的向量以及用于匹配两个数据帧中的行的向量。
R目前有这样的功能吗?或者,任何人都可以提供这样的功能吗?
答案 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重复,可以说是不必要的)。