根据另一个数据帧上的键值重新编码变量

时间:2019-05-28 16:54:46

标签: r dataframe join dplyr

我有两个数据集,一个数据集的键变量在每一行上都是唯一的,另一个数据集的键变量在许多行上重复。像本例中的数据一样:

set.seed(300)    
data1 <- data.frame(key = LETTERS[seq( from = 1, to = 5 )], value = rnorm(5,1,1))
data2 <- data.frame(key = rep(LETTERS[seq( from = 1, to = 5 )], 2), value = rnorm(10,1,1))

我想要一个函数根据value上变量data1的最小值重新编码value上的data2变量。

为此,我一直试图在每个key值上重复它,如下所示:

data1$value[data1$key == "A"] <- min(range(data2$value[data2$key == "A"]))
data1$value[data1$key == "B"] <- min(range(data2$value[data2$key == "B"]))
data1$value[data1$key == "C"] <- min(range(data2$value[data2$key == "C"]))
data1$value[data1$key == "D"] <- min(range(data2$value[data2$key == "D"]))
data1$value[data1$key == "E"] <- min(range(data2$value[data2$key == "E"]))

我知道必须有很多不同的方法来完成此操作,但是我还没有找到方法(也许使用dplyr?),我想避免for循环。

谢谢!

编辑:

我不想dplyr::summarise使用新的数据框;我需要将其他变量保留在data1中(是的,最初存在的变量比我在此处输入的要多)。

0 个答案:

没有答案