从R中的字符向量中删除引号

时间:2011-03-07 03:20:57

标签: r quotes

假设你有一个角色向量:

char <- c("one", "two", "three")

当您引用索引值时,您将获得以下内容:

> char[1]
[1] "one"

如何从返回值中删除引号以获得以下内容?

[1] one

11 个答案:

答案 0 :(得分:71)

试试noquote(a)

  

noquote( “a”)的

[1] a

答案 1 :(得分:26)

as.name(char[1])会起作用,虽然我不确定你为什么真的想要这样做 - 引号不会在paste中被转移例如:

> paste("I am counting to", char[1], char[2], char[3])
[1] "I am counting to one two three"

答案 2 :(得分:24)

返回值中没有引号,仅在显示值时print()的默认输出中。尝试

> print(char[1], quote=FALSE)
[1] one

> cat(char[1], "\n")
one

查看没有引号的值。

答案 3 :(得分:16)

您将使用R的'符号'(与R'中的'类型'相混淆的Quantmod的'符号'(与某些金融事物的代码有关的术语)。

你说过:

  

我有一个股票的字符向量   我传递给的符号   quantmod :: getSymbols()和   函数返回符号   没有引号的环境

差不多。它的作用是在指定环境中使用这些名称创建对象。我认为你想要做的是通过名字让事情远离环境。为此你需要'得到'。以下是在默认环境中工作的示例代码:

  

getSymbols( 'F',SRC = '雅虎',return.class = 'TS')   [1]“F”

所以你有一个你想要的东西的字符向量:

> z="F"
> z
[1] "F"

然后是魔术:

> summary(get(z))
     F.Open           F.High           F.Low           F.Close      
 Min.   : 1.310   Min.   : 1.550   Min.   : 1.010   Min.   : 1.260  
 1st Qu.: 5.895   1st Qu.: 6.020   1st Qu.: 5.705   1st Qu.: 5.885  
 Median : 7.950   Median : 8.030   Median : 7.800   Median : 7.920  
 Mean   : 8.358   Mean   : 8.495   Mean   : 8.178   Mean   : 8.332  
 3rd Qu.:11.210   3rd Qu.:11.400   3rd Qu.:11.000   3rd Qu.:11.180  
 Max.   :18.810   Max.   :18.970   Max.   :18.610   Max.   :18.790  

如果你不相信我:

> identical(F,get(z))
[1] TRUE

答案 4 :(得分:4)

我只是在猜测,这是在你想要实现的目标吗?

> a <- "a"
> a
[1] "a" # quote yes
> as.factor(a)
[1] a #quote no

答案 5 :(得分:3)

我想我正在尝试与原始海报非常相似的东西。 get()为我工作,虽然图表中的名称没有被继承。这是适用于我的代码。

#install it if you dont have it
library(quantmod)

# a list of stock tickers
myStocks <- c("INTC", "AAPL", "GOOG", "LTD")

# get some stock prices from default service
getSymbols(myStocks)

# to pause in between plots
par(ask=TRUE)

# plot all symbols
for (i in 1:length(myStocks)) {
    chartSeries(get(myStocks[i]), subset="last 26 weeks")
}

答案 6 :(得分:3)

如果:

> char<-c("one", "two", "three")

你可以:

> print(char[1],quote = FALSE)

你的结果应该是:

[1] one

答案 7 :(得分:2)

最简单的方法是:

> a = "some string"
> write(a, stdout())  # Can specify stderr() also.
some string

如果您在处理打印错误时,可以选择打印到stderr

答案 8 :(得分:1)

nump功能:)

> nump <- function(x) print(formatC(x, format="fg", big.mark=","), quote=FALSE)

正确答案:

  

x&lt; - 1234567890123456

> nump(x)

[1] 1,234,567,890,123,456 

答案 9 :(得分:0)

这是结合noquotepaste的一个:

noquote(paste("Argument is of length zero",sQuote("!"),"and",dQuote("double")))


#[1] Argument is of length zero ‘!’ and “double”

答案 10 :(得分:0)

尝试以下操作:(即使[1]也将被删除)

> cat(noquote("love"))
love

否则只使用noquote

> noquote("love")
[1] love