58 votes

Supprimer les guillemets d'un vecteur de caractères dans R

Supposons que vous ayez un vecteur de caractères :

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

Lorsque vous faites référence à une valeur d'indice, vous obtenez ce qui suit :

> char[1]
[1] "one"

Comment enlever les guillemets de la valeur de retour pour obtenir ce qui suit ?

[1] one

0 votes

Vous voulez donc simplement supprimer les guillemets lors de l'impression sur la sortie standard (ou dans un fichier) ?

2 votes

J'essaie de boucler les éléments d'un vecteur de caractères par le biais d'une fonction, mais j'ai besoin que les guillemets soient supprimés.

0 votes

Je suppose que je ne comprends toujours pas l'objectif exact - peut-être que le fait d'afficher l'exemple d'utilisation serait utile.

5voto

Roman Luštrik Points 19295

Je ne fais que supposer, est-ce que cela correspond à ce que vous essayez d'obtenir ?

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

4voto

Le moyen le plus simple est :

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

Cette option vous permet d'imprimer sur stderr si vous faites une impression de gestion des erreurs.

0 votes

Avec des variables, comme %s ?

1 votes

Je ne suis pas exactement sûr de ce que vous demandez, mais peut-être que ceci répond à ce que je pense être votre question. Si vous voulez un formatage d'impression, vous pouvez faire quelque chose comme a=sprintf("%s %.2f ", "somestring", 5) et ensuite write(a, stdout())

3voto

Randall Goodwin Points 714

Je pense que j'ai essayé quelque chose de très similaire à l'affiche originale. Le get() a fonctionné pour moi, bien que le nom à l'intérieur du graphique n'ait pas été hérité. Voici le code qui a fonctionné pour moi.

#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")
}

3voto

NelsonGon Points 11338

En voici une qui combine noquote y paste :

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

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

3voto

vivek Points 52

Essayez ceci : (même [1] sera supprimé)

> cat(noquote("love"))
love

sinon, il suffit de ne pas utiliser de guillemets

> noquote("love")
[1] love

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X