使用dplyr连接组中的所有行 [英] Concatenating all rows within a group using dplyr
本文介绍了使用dplyr连接组中的所有行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有一个这样的数据框:
hand_id card_id card_name card_class
A 1 p alpha
A 2 q beta
A 3 r theta
B 2 q beta
B 3 r theta
B 4 s gamma
C 1 p alpha
C我想把card_id,card_name和card_class连接成一个单独的一行,每个手号A级,B级,C级,所以结果将如下所示: hand_id combo_1 combo_2 combo_3
A 1 -2-3 pqr alpha-β-θ
B 2-3-4 qrs beta-θ-gamma
....
我尝试使用group_by和mutate来执行此操作,但我似乎无法使其正常工作
data< - read_csv('data.csv')
byHand< - group_by(data,hand_id )%>%
mutate(combo_1 = paste(card_id),
combo_2 = paste(card_name),
combo_3 = paste(card_class))
感谢您的帮助。
解决方案你很亲近!
code> library(tidyr)
library(dplyr)
data< - read_csv('data.csv')
byHand< - group_by(data,hand_id )%>%
summaryize(combo_1 = paste(card_id,collapse = - ),
combo_2 = paste(card_name,collapse = - ),
combo_3 = ,collapse = - ))
或使用 summarise_each
byHand< - group_by(data,hand_id)%>%
summarise_each(funs粘贴(。,collapse = - )))
Suppose I have a dataframe like this:
hand_id card_id card_name card_class
A 1 p alpha
A 2 q beta
A 3 r theta
B 2 q beta
B 3 r theta
B 4 s gamma
C 1 p alpha
C 2 q beta
I would like to concatenate the card_id, card_name, and card_class into one single row per hand level A, B, C. So the result would look something like this:
hand_id combo_1 combo_2 combo_3
A 1-2-3 p-q-r alpha-beta-theta
B 2-3-4 q-r-s beta-theta-gamma
....
I attempted to do this using group_by and mutate, but I can't seem to get it to work
data <- read_csv('data.csv')
byHand <- group_by(data, hand_id) %>%
mutate(combo_1 = paste(card_id),
combo_2 = paste(card_name),
combo_3 = paste(card_class))
Thank you for your help.
解决方案
You were kind of close!
library(tidyr)
library(dplyr)
data <- read_csv('data.csv')
byHand <- group_by(data, hand_id) %>%
summarise(combo_1 = paste(card_id, collapse = "-"),
combo_2 = paste(card_name, collapse = "-"),
combo_3 = paste(card_class, collapse = "-"))
or using summarise_each
:
byHand <- group_by(data, hand_id) %>%
summarise_each(funs(paste(., collapse = "-")))
这篇关于使用dplyr连接组中的所有行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文