在数据框中的每个元素的末尾添加空格?

时间:2018-05-05 10:30:16

标签: r whitespace string-concatenation

假设数据框如下:

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'))

3 个答案:

答案 0 :(得分:4)

您可以使用sub("$", " ", Names$Companies) [1] "NINTENDO " "SONY " "MICROSOFT " sub("^", " ", Names$Companies) [1] " NINTENDO" " SONY" " MICROSOFT"

执行此操作
$

在正则表达式中,^表示字符串的结尾。 {{1}}表示开头。

答案 1 :(得分:2)

或者直接的做法是使用pastepaste0

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 "