我有两个数据集,一个数据集的键变量在每一行上都是唯一的,另一个数据集的键变量在许多行上重复。像本例中的数据一样:
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
中(是的,最初存在的变量比我在此处输入的要多)。