合并列的子字符串

时间:2019-10-29 14:45:48

标签: r dataframe

我有一个数据框,我想将列组合为字符串,但只采用相应行的前3个字符。

考虑mtcars:我想创建一个由列combmpg组成的列cyl,但只使用mpg的前两个字符,以_分隔。

comb的前两行的预期结果是:

comb
21_6
21_6
22_4
21_6

2 个答案:

答案 0 :(得分:4)

pastesubstr一起使用:

mtcars$comb <- paste(substr(mtcars$mpg, 1, 2), mtcars$cyl, sep="_")

如果cyl列可能包含多个数字/字符,而您只想要第一个数字/字符,则第二次使用substr

mtcars$comb <- paste(substr(mtcars$mpg, 1, 2), substr(mtcars$cyl, 1, 1), sep="_")

答案 1 :(得分:1)

结合dplyr的{​​{1}},您可以使用mutate()substr()(或如上所述的paste0()

paste(... sep = "_")