R 聚合插入字符串
我有一个叫做教师的数据框架:R 聚合插入字符串,r,grouping,R,Grouping,我有一个叫做教师的数据框架: Teachers <- data.frame(Discipline = c("Math","Math","Chem","Arts","History","History"), Teacher = c("Mark","Mark","Peter","Richard","Mark","Mark"), Position = c("Coord","Teacher", "Teac
Teachers <- data.frame(Discipline = c("Math","Math","Chem","Arts","History","History"),
Teacher = c("Mark","Mark","Peter","Richard","Mark","Mark"),
Position = c("Coord","Teacher", "Teacher", "Teacher","Coord","Teacher"))
教师您可以使用:
library(dplyr)
Teachers %>%
group_by(Teacher, Discipline) %>%
summarise(Position = paste0(Position, collapse = '/'))
结果是:
# A tibble: 4 x 3
# Groups: Teacher [?]
Teacher Discipline Position
<fctr> <fctr> <chr>
1 Mark History Coord/Teacher
2 Mark Math Coord/Teacher
3 Peter Chem Teacher
4 Richard Arts Teacher
# A tibble: 3 x 3
Teacher Discipline Position
<fctr> <chr> <chr>
1 Mark Math/History Coord/Teacher
2 Peter Chem Teacher
3 Richard Arts Teacher
结果是:
# A tibble: 4 x 3
# Groups: Teacher [?]
Teacher Discipline Position
<fctr> <fctr> <chr>
1 Mark History Coord/Teacher
2 Mark Math Coord/Teacher
3 Peter Chem Teacher
4 Richard Arts Teacher
# A tibble: 3 x 3
Teacher Discipline Position
<fctr> <chr> <chr>
1 Mark Math/History Coord/Teacher
2 Peter Chem Teacher
3 Richard Arts Teacher
#一个tible:3 x 3
教师纪律职位
1马克数学/历史合作/教师
2彼得化学老师
3理查德艺术老师
您可以使用:
library(dplyr)
Teachers %>%
group_by(Teacher, Discipline) %>%
summarise(Position = paste0(Position, collapse = '/'))
结果是:
# A tibble: 4 x 3
# Groups: Teacher [?]
Teacher Discipline Position
<fctr> <fctr> <chr>
1 Mark History Coord/Teacher
2 Mark Math Coord/Teacher
3 Peter Chem Teacher
4 Richard Arts Teacher
# A tibble: 3 x 3
Teacher Discipline Position
<fctr> <chr> <chr>
1 Mark Math/History Coord/Teacher
2 Peter Chem Teacher
3 Richard Arts Teacher
结果是:
# A tibble: 4 x 3
# Groups: Teacher [?]
Teacher Discipline Position
<fctr> <fctr> <chr>
1 Mark History Coord/Teacher
2 Mark Math Coord/Teacher
3 Peter Chem Teacher
4 Richard Arts Teacher
# A tibble: 3 x 3
Teacher Discipline Position
<fctr> <chr> <chr>
1 Mark Math/History Coord/Teacher
2 Peter Chem Teacher
3 Richard Arts Teacher
#一个tible:3 x 3
教师纪律职位
1马克数学/历史合作/教师
2彼得化学老师
3理查德艺术老师
BaseR
使用以下功能的解决方案:
aggregate(Position ~ Discipline + Teacher, data = Teachers,
function(x) paste0(x, collapse = '/'))
# Discipline Teacher Position
# 1 History Mark Coord/Teacher
# 2 Math Mark Coord/Teacher
# 3 Chem Peter Teacher
# 4 Arts Richard Teacher
或等效(HT@h3rm4n):
基本R
使用函数的解决方案:
aggregate(Position ~ Discipline + Teacher, data = Teachers,
function(x) paste0(x, collapse = '/'))
# Discipline Teacher Position
# 1 History Mark Coord/Teacher
# 2 Math Mark Coord/Teacher
# 3 Chem Peter Teacher
# 4 Arts Richard Teacher
或等效(HT@h3rm4n):
你接受dplyr
解决方案吗?是的,没有问题你接受dplyr
解决方案吗?是的,没有问题如果我希望纪律不是唯一的,它会是怎样的?之后我将使用它与其他数据帧合并。这将返回数据帧:@Malakias我从第一个解决方案中删除了unique
-函数。您可以使用第一个数据帧的输出与另一个数据帧合并。好的,我试试看,Tksi如果我希望规程不是唯一的,它会是怎样的?之后我将使用它与其他数据帧合并。这将返回数据帧:@Malakias我从第一个解决方案中删除了unique
-函数。您可以使用第一个数据帧的输出与另一个数据帧合并。好的,我试试看,TKSI您也可以以聚合的形式使用它(Position~dictional+Teacher,Teachers,paste0,collapse='/')
(我在更新我的答案时,您发布了您的答案,我已经从我的答案中删除了它)。这就是我的意思,bouncyball,Tks!你也可以使用它的形式聚合(Position~dictional+Teacher,Teachers,paste0,collapse='/')
(我在更新我的答案时,当你发布你的答案时,我已经将它从我的答案中删除了)这就是我的意思,bouncyball,Tks!