Come stampare R variabili nel mezzo della Stringa

Sto cercando di stampare una riga che contiene una miscela di una Stringa a una variabile. Qui è il codice R a presentare:

cat("<set name=\",df$timeStamp,\" value=\",df$Price,\" ></set>\n")

Ecco cosa viene stampato quando eseguire:

<set name=",df$timeStamp," value=",df$Price," ></set>

Mi piacerebbe avere il valore di df$timeStamp e df$Prezzo stampato. Vorrei per esempio, la seguente:

<set name="2010-08-18 12:00:59" value="17.56" ></set>

Idea di dove sto andando di sbagliato nel codice?

Qualsiasi aiuto molto apprezzato.

Riguarda,

Antonio.

 

3 Replies
  1. 21

    Il problema è che la R non valutare qualsiasi espressione entro le virgolette, è solo la stampa la stringa definita. Ci sono diversi modi intorno ad esso. Ad esempio, è possibile utilizzare il sprintf funzione (non testato perché non si riproducibile esempio):

       cat(sprintf("<set name=\"%s\" value=\"%f\" ></set>\n", df$timeStamp, df$Price))
    • Quando si usano gli apici singoli, questo rende il tutto più facile da leggere… cat(sprintf('<set name="%s" value="%f" ></set>\n', df$timeStamp, df$Price))
  2. 13

    Ti manca qualche extra virgolette. Prova questo:

    cat('<set name=\"',df$timeStamp,'\" value=\"',df$Price,'\" ></set>\n')

    Ecco un esempio di quello che intendo:

    cat("a b c -> \"", letters[1:3], "\"\n")
    • Se vuoi essere super-chiazza di petrolio, si può evitare di dover fuggire citazioni (in questo caso) utilizzando virgolette singole per delineare la stringa e doppi apici all’interno di esso: cat('a b c -> "', letters[1:3], '"\n')
  3. 1

    Cat funziona bene senza aggiunta di librerie e scappa:

    cat('<set name="', df$timeStamp, '" value="', df$Price, '"></set>\n', sep='')

    di uscita:

    <set name="2010-08-18 12:00:59" value="17.56"></set>
    • Questo è quasi identico a Shane risposta. L’aggiunta di sep argomento, probabilmente, dovrebbe essere un commento alla sua risposta, piuttosto che un nuovo post.

Lascia un commento