假设数据框如下:
Names <- data.frame(Companies=c('NINTENDO', 'SONY', 'MICROSOFT'))
我想让R为每个元素(NINTENDO,SONY和MICROSOFT)提供一个名称末尾的空格,这样最终的输出就像上面那个,但只是在最后添加了一个空格。每个名字:
Names <- data.frame(Companies=c('NINTENDO ', 'SONY ', 'MICROSOFT '))
一个额外的问题,是否有类似的方法在每个名字前面添加一个空格?像这样:
Names <- data.frame(Companies=c(' NINTENDO', ' SONY', ' MICROSOFT'))
答案 0 :(得分:4)
您可以使用sub("$", " ", Names$Companies)
[1] "NINTENDO " "SONY " "MICROSOFT "
sub("^", " ", Names$Companies)
[1] " NINTENDO" " SONY" " MICROSOFT"
。
$
在正则表达式中,^
表示字符串的结尾。 {{1}}表示开头。
答案 1 :(得分:2)
或者直接的做法是使用paste
或paste0
paste(" ",Names$Companies)
#[1] " NINTENDO" " SONY" " MICROSOFT"
paste(Names$Companies, " ")
#[1] "NINTENDO " "SONY " "MICROSOFT "
您也可以通过
组合它们paste(" ",Names$Companies, " ")
#[1] " NINTENDO " " SONY " " MICROSOFT "
正如@Karolis评论paste
将添加默认空格为sep
erator使用paste0
而不是
paste0(" ",Names$Companies, " ")
#[1] " NINTENDO " " SONY " " MICROSOFT "
答案 2 :(得分:1)
您还可以使用sprintf
:
sprintf(" %s ", Names$Companies)
# [1] " NINTENDO " " SONY " " MICROSOFT "