Как обратиться непосредственно к объекту R, имя которого дано как строковый объект? - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу прочитать CSV-файлы, а затем добавить имена столбцов в каждом объекте на основе имени файла следующим образом:

for (fname in c("abc", "def", "ghi")) {
    assign(fname, read.csv(paste(HOMEDIR, fname, pnl.csv, sep="/")))
    names(?) = paste(names(?), fname, sep="."))
}

У меня возникли проблемы в части переименования.Что должно заменить ??

Я пробовал get(fname), as.name(fname), as.symbol(fname) и т. Д.

1 Ответ

0 голосов
/ 28 февраля 2019

Используйте список.Вы не можете объединить get с присваиванием names<-, потому что get возвращает временную копию объекта.И, очевидно, вам не нужно.Ваш подход - плохая практика.Используйте список.

mylist <- list()

for (fname in c("abc", "def", "ghi")) {
    mylist[[fname]] <- read.csv(paste(HOMEDIR, fname, pnl.csv, sep="/"))
    names(mylist[[fname]]) <- paste(names(mylist[[fname]]), fname, sep="."))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...