如何为阶乘数据帧分配特定值?

时间:2019-06-13 20:52:55

标签: r dataframe

我正在从一组位置计算摘要(均值)。然后需要将这些平均值重新分配给计算这些均值的位置。

我所做的是计算这些均值,并尝试创建一个新变量(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

1 个答案:

答案 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