如何使用单独的函数仅获取第一个元素

问题描述 投票:0回答:1

假设我想将值分成三个不同的列,并用符号 /

分割
df2 frame(player=c('A', 'A', 'B', 'B', 'C', 'C'),
                     year=c(1, 2, 1, 2, 1, 2),
                     stats=c('22/2/3', '29/3/4', '18/6/7', '11/1/2', '12/1/1', '19/2/4'))

我会使用以下代码

separate(df, col=stats, into=c('points', 'assists', 'steals'), sep='/')

但是如果我只想将第一个元素保留在一个列中,而将其他两个元素分开?我的意思是(仅第一行的示例):

col1   col2

22     2/3

我应该如何更改以下代码?

separate(df2, col=stats, into=c('points', 'assist'), sep='/')
r string tidyr separator
1个回答
2
投票

separate
函数有一个
extra=
参数来控制当您发现的内容多于提取的内容时会发生什么情况。此处使用
extra="merge"
折叠值

separate(df2, col=stats, into=c('points', 'assist'), sep='/', extra="merge")
#   player year points assist
# 1      A    1     22    2/3
# 2      A    2     29    3/4
# 3      B    1     18    6/7
# 4      B    2     11    1/2
# 5      C    1     12    1/1
# 6      C    2     19    2/4
© www.soinside.com 2019 - 2024. All rights reserved.