R语言 创建逗号分隔的向量
在这篇文章中,我们将讨论如何在R编程语言中创建一个逗号分隔的向量。
方法1:使用shQuote()方法
首先,根据使用shQuote()方法的输入,用单引号或双引号括住向量元素。这个方法可以用来用双引号括住一个字符串。它是针对操作系统的外壳而使用的。然后这个函数被应用于向量参数的每个单独元素,然后返回。
语法: shQuote(str, type =)
参数:
- str : 一个要使用的字符向量
- type : 外壳引号类型的指示器。在Windows shell中使用 “cmd “和 “cmd2″。”sh “和 “csh “用于unix-alike shells。
然后得到的向量元素将被用于 paste() 方法,该方法用于将较小的字符串连接成一个较大的字符串对象,并由该方法的collapse属性设置的分隔符分隔。
语法:
paste (obj, sep = ” “, collapse )
参数:
- obj – 它是一个向量或列表或由一个或多个元素组成的数组对象
- sep – 用来连接obj中各个元素的分隔符
- collapse – 元素被合并成一个字符串,使用连接器作为折叠值。默认值是NULL。
然而,我们不能简单地使用print()方法来打印最终的向量,因为反斜线是由shQuote()方法引入的,可以使用cat()方法来消除反斜线,该方法连接向量的相应元素。
例1 :
# declaring a string vector
vec <- c('geeks','for','geeks')
print ("Original Vector")
print(vec)
# converting vector
fvec <- shQuote(vec, type = "cmd")
# combining elements using ,
comma_vec <- paste(fvec, collapse = ", ")
# printing the final vector
print ("Final Vector")
cat(comma_vec)
输出
[1] "Original Vector"
[1] "geeks" "for" "geeks"
[1] "Final Vector"
"geeks", "for", "geeks"
例2 :
# declaring a string vector
vec <- letters[5:10]
print ("Original Vector")
print(vec)
# converting vector
fvec <- shQuote(vec, type = "cmd")
# combining elements using ,
comma_vec <- paste(fvec, collapse = ", ")
# printing the final vector
print ("Final Vector")
cat(comma_vec)
print("\n")
# declaring a numerical vector
num_vec <- c(95:100)
print ("Original Vector")
print(num_vec)
# converting vector
vec2 <- shQuote(num_vec, type = "cmd")
# combining elements using ,
comma_vec2 <- paste(vec2, collapse = ", ")
# printing the final vector
print ("Final Vector")
cat(comma_vec2)
输出
[1] "Original Vector"
[1] "e" "f" "g" "h" "i" "j"
[1] "Final Vector"
"e", "f", "g", "h", "i", "j"
[1] "\n"
[1] "Original Vector"
[1] 95 96 97 98 99 100
[1] "Final Vector"
"95", "96", "97", "98", "99", "100"
方法2:使用paste()或paste0()方法
上面讨论的paste()方法也可以单独使用,如果我们不希望一定要获得原始向量的每个元素作为一个单独的字符串。在这种情况下,矢量的相应元素只是使用paste()方法的collapse属性中指定的字符串连接成一个更大的字符串。
paste0()方法的功能与paste()方法相似,只是不允许用户输入自定义的分隔符字符串。这个方法也可以用来生成一个逗号分隔的向量。
语法
paste0(..., collapse = NULL)
例子
# declaring a string vector
vec <- c(1:10)
print ("Original Vector")
print (vec)
# using paste method
vec_mod = paste(vec, collapse=",")
print ("Modified Vector using paste")
print (vec_mod)
# using paste0 method
vec_mod1 = paste0(vec, collapse=",")
print ("Modified Vector using paste0")
print (vec_mod1)
输出
[1] "Original Vector"
[1] 1 2 3 4 5 6 7 8 9 10
[1] "Modified Vector using paste"
[1] "1,2,3,4,5,6,7,8,9,10"
[1] "Modified Vector using paste0"
[1] "1,2,3,4,5,6,7,8,9,10"