我有一个数据框,我想将列组合为字符串,但只采用相应行的前3个字符。
考虑mtcars
:我想创建一个由列comb
和mpg
组成的列cyl
,但只使用mpg
的前两个字符,以_
分隔。
comb
的前两行的预期结果是:
comb
21_6
21_6
22_4
21_6
答案 0 :(得分:4)
将paste
与substr
一起使用:
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 = "_")