【发布时间】:2021-09-28 06:04:11
【问题描述】:
我有一个具有以下结构的data.frame:
我需要的是,如果第一列中的值多次出现,则 V18 列中的所有相应条目都在一个单元格中结束。 我应用了以下代码。
p <- function(v) {
Reduce(f=paste0, x = v)
}
Data %>%
group_by(V1) %>%
summarise(test = p(as.character(V18))) %>%
merge(., M_TEST, by = 'V1') %>%
select(V1, V18, test)
它给出:
我需要的是 {43,44} 而不是 4344。 我该怎么做?
非常感谢您的帮助!
真诚的
【问题讨论】:
-
请不要将数据发布为图片。看看如何创建great reproducible example 以了解数据的显示方式。
-
这样的?
Data %>% group_by(V1) %>% summarize(V18 = paste(V18, collapse = ",")) -
这个其实还不错。谢谢@Jean-Claude Arbaut。这给出了 43,44。我需要的是{43,44}。你知道这是否也有可能吗?
-
当然。
paste0("{", paste(V18, collapse=","), "}") -
你也可以
Data %>% group_by(V1) %>% summarize(V18 = list(V18))。这不完全是您想要的,但它将分组元素存储在实际的 R 列表(向量)中。在某些情况下可以派上用场。
标签: r dataframe group-by merge summarize