Удалить кавычки из символьного вектора в R
Предположим, что у вас есть вектор символов:
char <- c("one", "two", "three")
Когда вы ссылаетесь на значение индекса, вы получаете следующее:
> char[1]
[1] "one"
Как вы можете удалить метки кавычки из возвращаемого значения, чтобы получить следующее?
[1] one
Ответы
Ответ 1
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
Просто попробуйте noquote (a)
noquote ( "а" )
[1] a
Ответ 3
В возвращаемом значении нет кавычек, только при выводе по умолчанию из print() при отображении значения. Попробуйте
> print(char[1], quote=FALSE)
[1] one
или
> cat(char[1], "\n")
one
чтобы увидеть значение без кавычек.
Ответ 4
Вы вводите в заблуждение квантовый символ '(термин, относящийся к коду для некоторого финансового объекта) с символом R', который является "типом" в R.
Вы сказали:
У меня есть вектор-символ запаса символы, которые я передаю quantmod:: getSymbols() и функция возвращает символ в среда без кавычек
Ну, почти. Он создает объекты с этими именами в указанной среде. Я думаю, что вы хотите сделать это, чтобы вывести вещи из среды по имени. И для этого вам нужно "получить". Вот как, например, код, работающий в среде по умолчанию:
getSymbols ( 'F', src= 'Yahoo', return.class= 'ц') [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
Ответ 5
Я просто догадываюсь, это в шаровом парке того, чего вы пытаетесь достичь?
> a <- "a"
> a
[1] "a" # quote yes
> as.factor(a)
[1] a #quote no
Ответ 6
Я думаю, что я пытался что-то очень похожее на оригинальный плакат. 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")
}
Ответ 7
Если:
> char<-c("one", "two", "three")
Вы можете:
> print(char[1],quote = FALSE)
Ваш результат должен быть:
[1] one
Ответ 8
Функция nump:)
> nump <- function(x) print(formatC(x, format="fg", big.mark=","), quote=FALSE)
правильный ответ:
x < - 1234567890123456
> nump(x)
[1] 1,234,567,890,123,456
Ответ 9
Самый простой способ это:
> a = "some string"
> write(a, stdout()) # Can specify stderr() also.
some string
Дает вам возможность печатать в stderr
если вы печатаете с ошибками.
Ответ 10
Вот один из сочетаний noquote
и paste
:
noquote(paste("Argument is of length zero",sQuote("!"),"and",dQuote("double")))
#[1] Argument is of length zero ‘! and "double"