我的数据如下:
proposal_number <- c("Expt 1", "Expt 1", "Expt 1", "Expt 2", "Expt 2")
crop_weight <- c("Winter Wheat 200g", "Winter Barley 200g", "Spring Beans 500g", "Winter Wheat 300g", "Spring Beans 100g")
data<-data.frame(proposal_number, crop_weight)
proposal_number crop_weight
1 Expt 1 Winter Wheat 200g
2 Expt 1 Winter Barley 200g
3 Expt 1 Spring Beans 500g
4 Expt 2 Winter Wheat 300g
5 Expt 2 Spring Beans 100g我想通过crop_weight来降低proposal_number的级别,所以它看起来如下:
proposal_number crop_weight
1 Expt 1 Winter Wheat 200g, Winter Barley 200g, Spring Beans 500g
2 Expt 2 Winter Wheat 300g, Spring Beans 100我已经走了这么远:
help <-data %>%
group_by(proposal_number) %>%
mutate(crop_weight = paste(crop_weight, collapse = "; ")) 但是,它将所有-- crop_weight的因子级别--用于proposal_number的两个因素级别,如下所示:
proposal_number crop_weight
1 Expt 1 Winter Wheat 200g, Winter Barley 200g, Spring Beans 500g, Winter Wheat 300g, Spring Beans 100g
2 Expt 2 Winter Wheat 200g, Winter Barley 200g, Spring Beans 500g, Winter Wheat 300g, Spring Beans 100g我已经搜索了整个上午,也许我的搜索词是错的,但我找不到一个明显的答案。我很感谢你对我哪里出了问题有任何见解吗?
这是我发现的最有用的线索,但正如我上面所说,它不太管用.Concatenate strings by group with dplyr
非常感谢
发布于 2021-07-12 13:59:06
使用summarise而不是mutate
data %>%
group_by(proposal_number) %>%
summarise(crop_weight = paste0(crop_weight,collapse = ","))输出:
proposal_number crop_weight
<chr> <chr>
1 Expt 1 Winter Wheat 200g,Winter Barley 200g,Spring Beans 500g
2 Expt 2 Winter Wheat 300g,Spring Beans 100g https://stackoverflow.com/questions/68348602
复制相似问题