在R中的字符串末尾插入字符,最后一个元素除外

时间:2015-01-19 15:31:06

标签: r

我看了但是没找到如何在R中的字符串向量中的每个元素的末尾添加一个字符的答案,除了最后一个 ...

请考虑以下事项:

data <- c("cat", "dog", "mouse", "lion")

我想要应用粘贴&#34;,&#34;的功能。在每个元素的末尾,结果是:

[1] "cat,", "dog,", "mouse,", "lion"

应用功能? for loop?任何帮助表示赞赏...

2 个答案:

答案 0 :(得分:11)

您可以通过以下几种方式完成此操作:

  1. 子集&#39;数据&#39;如果没有最后一个元素,请粘贴,,并将其分配给原始数据(不包含最后一个元素)

    data[-length(data)] <- paste0(data[-length(data)], ',')
    
  2. 将其作为字符串折叠后使用strsplit

    strsplit(paste(data, collapse=', '), ' ')[[1]]     
    

答案 1 :(得分:0)

我知道这是一个老问题,但是由于我想人们(像我一样)仍在这里结束,所以他们可能希望考虑由较新的但相当常见的软件包提供的简单解决方案。他们提供的选择略有不同。

选项1:编织器

data <- c("cat", "dog", "mouse", "lion")
knitr::combine_words(data, before = '`')

# `cat`, `dog`, `mouse`, and `lion`

选项2:胶水

data <- c("cat", "dog", "mouse", "lion")
glue::glue_collapse(x = data, ", ", last = " and ")

# cat, dog, mouse and lion