我正在从一组位置计算摘要(均值)。然后需要将这些平均值重新分配给计算这些均值的位置。
我所做的是计算这些均值,并尝试创建一个新变量(average.yield),将每个位置的平均产量分配给每个位置。
val data = listOf("1", "2", "3", "4", "+", "3")
val concat = data.takeWhile { it.toIntOrNull() != null }.joinToString("")
我期望这样的事情。
cultivar <- c("cultivar_A", "cultivar_B")
data1 <- expand.grid(locs, cultivar)
yield <- c(7000, 5000, 2000, 7000, 6000, 5000)
data1$yield <- yield
colnames(data1) <- c("locs", "cultivar", "yield")
mean.yield.loc <- data1 %>%
group_by(locs) %>%
summarise(mean.yield = mean(yield))
data1 %>%
group_by(locs, cultivar) %>%
mutate(average.yield = mean.yield.loc$mean.yield)
这是错误:
locs cultivar yield average.yield
Loc_1 cultivar_A 7000 7000
Loc_2 cultivar_A 5000 5500
Loc_3 cultivar_A 2000 3500
Loc_1 cultivar_B 7000 7000
Loc_2 cultivar_B 6000 5500
Loc_3 cultivar_B 5000 3500
答案 0 :(得分:1)
只需使用merge
函数。
merge(data1,mean.yield.loc, by.x = "locs", by.y = "locs")
locs cultivar yield mean.yield
1 Loc_1 cultivar_A 7000 7000
2 Loc_1 cultivar_B 7000 7000
3 Loc_2 cultivar_A 5000 5500
4 Loc_2 cultivar_B 6000 5500
5 Loc_3 cultivar_A 2000 3500
6 Loc_3 cultivar_B 5000 3500