2012-09-29 6 views
8

Sto cercando di prendere due vettori di caratteri:con pasta() per la costruzione di percorso di Windows in R

directory <- "specdata" 
id <- 1 

e leggere i dati dal file che avrebbero "punto" a: vale a dire:

data <- read.table(paste(directory,"\\",id,".csv", sep="") 

Il problema è nel risultato di incolla e "\". Sto cercando di farlo restituire "specdata\1.csv" tuttavia restituisce "specdata\\1.csv" che non è la stessa cosa.

senza alcun risultato, ho anche provato:

  • utilizzando un singolo-slash "\"
  • usando le virgolette singole come '\\'
  • usando le virgolette singole come '\'
  • cambiando Settembre = '\'
  • modifica sep = '\\'
  • modifica sep = "\"
  • cambiando Settembre = "\\"
  • mediante la funzione c() prima come

codice:

fileNameAndPath <- c(directory,"\",id,".csv") 
data <- read.table(fileNameAndPath) 
+0

Ti sei perso l'ovvio '/' che R consente e vuoi annullare a proposito di sfuggire alla barra - quindi '\\' ha davvero bisogno '\\\\'. Detto questo, 'file.path()' è * il * modo di andare come mostrato da @sgibb. –

risposta

18

Si dovrebbe usare file.path invece (è indipendente della piattaforma):

file.path(directory, paste(id, ".csv", sep="")) 
+0

file.path è quello che stavo cercando, ma ora più in generale, in che modo un altro concatenerebbe le tre stringhe "ciao" "\" e "mamma"? File.path è l'unico modo per inserire una barra tra le stringhe? –

+2

Nota che 'nchar (" \\ ")' è ancora 1, quindi sebbene abbia un aspetto diverso, è in realtà una singola barra. – James

+0

Grazie, ho aggiornato la mia domanda per mettere gli esempi in codice div per dimostrare che capisco che ... ancora ancora la domanda esiste perché pasta non funziona come mi aspetto che sia –

Problemi correlati