如何获得不带符号[]的字符串向量的元素

时间:2019-06-28 12:34:52

标签: r string vector

如何获取不带符号[1]的字符串向量的元素?

v <- c("a","b","c")
for (i in seq_along(v)) {
  print(v[i])
}

我得到的不是得到“ a”,“ b”,“ c”:

[1] "a"
[1] "b"
[1] "c"

但是当我使用as.symbol

for (i in seq_along(v)) {
  print(as.symbol(v[i]))
}

我获得:

a
b
c

没有任何[]

2 个答案:

答案 0 :(得分:1)

print是一个具有误导性名称的函数。更准确的名称是show_value_in_interactive_console(但这是少数几个)。它的目的实际上仅是在交互式R控制台中显示值。 不适合其他用途。

当您实际上要向用户显示值或将其保存到文件时,您要使用print。相反,您想使用

  • 用于向用户显示值:messagewarning(或stop
  • 用于将值的文本表示形式持久保存到文件中或将其公开给系统:writeLinescat

以上所有内容通常与formatsprintfas.charactertoString结合使用,它们将值实际转换为文本。

哦,as.symbol与以上内容完全无关,因此不应在此处使用。它恰好偶然地为您的目的工作。

答案 1 :(得分:0)

您可以使用as.symbol打印,如果需要符号索引,只需在

前打印i
    for (i in seq_along(v)) {
      print(i)
      print(as.symbol(v[i]))
}

输出看起来像

0
a
1
b
2
c