Я сталкиваюсь с проблемами чтения в файлах csv с динамическими именами и , избегая жесткого кодирования пути к файлу. Я хотел бы короткий аккуратный код (без жесткого кода). Если я жестко закодирую полный путь (все до "~"), он хорошо читается в файлах. Но софт-кодирование (если это противоположно жесткому кодированию) путь к файлу дает ошибку (несмотря на отображение правильного пути в ошибке. У меня есть две переменные части имени файла, которые я вставляю в имя файла перед его чтениемв. Если я избегаю вставки и просто набираю путь для отдельного человека, это также работает.
#dynamic part I usually have in a loop with all the options.
part_a <- "outside" #other options here in my loop include "inside"
part_b <- "late" # other option "early" or "preterm"
#reading in the df
df <-read.csv(paste0("~/Data/FromR/clean_",part_a,part_b,"_2016.csv"),
check.names=FALSE, na.strings="null")
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'C:/Users/myname/Documents/Data/FromR/clean_outsidelate_2016.csv': No such file or directory
, если я использую getwd()
в первой части вставки вместо ~
, как предложено здесь он работает, производя эту строку "C:/Users/myname/Documents/MyR_Projects/Specific_R_project/"
в начале вставки, но как мне заставить его работать с "~"? При использовании ~
он останавливается в папке "Documents" .. .
Желаемым результатом является чтение в файле без ошибок, выполнение функций и повторение с другими файлами. Мой цикл прекрасно работает жестко, и я только хотел сделать его более общим или мягким.