Подтвердить что ты не робот

Удалить кавычки из символьного вектора в R

Предположим, что у вас есть вектор символов:

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

Когда вы ссылаетесь на значение индекса, вы получаете следующее:

> char[1]
[1] "one"

Как вы можете удалить метки кавычки из возвращаемого значения, чтобы получить следующее?

[1] one
4b9b3361

Ответ 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"