假设我有一个这样的数据帧:
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
Run Code Online (Sandbox Code Playgroud)
我想将card_id,card_name和card_class连接成每一级A,B,C的单行.所以结果看起来像这样:
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
....
Run Code Online (Sandbox Code Playgroud)
我尝试使用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))
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
你有点亲密!
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 = "-"))
Run Code Online (Sandbox Code Playgroud)
或使用summarise_each:
byHand <- group_by(data, hand_id) %>%
summarise_each(funs(paste(., collapse = "-")))
Run Code Online (Sandbox Code Playgroud)