假设您有一个字符向量:
char <- c("one", "two", "three")
当引用索引值时,您会得到以下结果:
> char[1]
[1] "one"
如何去除返回值中的引号以得到以下结果?
[1] one
只需尝试 noquote(a)
noquote("a")
[1] a
返回值中没有引号,只有在使用print()输出时才会出现。尝试:
> print(char[1], quote=FALSE)
[1] one
或者> cat(char[1], "\n")
one
查看没有引号的值。
as.name(char[1])
可以工作,尽管我不确定为什么你真的想这样做 - 例如在paste
中引号将不会被传递:
as.name(char[1])
可以使用,但我不确定为什么你会想要这样做 - 例如,在paste
中引号不会被带入:
> paste("I am counting to", char[1], char[2], char[3])
[1] "I am counting to one two three"
as.name
、as.symbol
和get
只允许少于10000字节的名称。noquote
没有这个限制。 - Chintan Pathaknoquote
之后获取一个字符类,但是不带引号吗? - abc> 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
> a <- "a"
> a
[1] "a" # quote yes
> as.factor(a)
[1] a #quote no
> char<-c("one", "two", "three")
> print(char[1],quote = FALSE)
[1] 一
:
> a = "some string"
> write(a, stdout()) # Can specify stderr() also.
some string
如果您需要进行错误处理打印,可以选择将打印输出到stderr
。
%s
这样的变量? - not2qubita=sprintf("%s %.2f ", "somestring", 5)
然后 write(a, stdout())
的操作。 - irritable_phd_syndrome我认为我在尝试与原帖非常相似的事情。对我来说,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")
}
这里是结合noquote
和paste
的一个例子:
noquote(paste("Argument is of length zero",sQuote("!"),"and",dQuote("double")))
#[1] Argument is of length zero ‘!’ and “double”
> cat(noquote("love"))
love
否则就使用noquote
> noquote("love")
[1] love
cat("[1]", char[1], "\n")
? - aL3xa