Оба типа замкнутых символов - это строки. Один тип цитаты удобно использовать для включения другого типа цитаты. "'"
и '"'
. Самая большая разница между типами котировок заключается в том, что ссылки с закрытыми идентификаторами заменяются внутри двойных кавычек, но не внутри одиночных кавычек.
Из вашего опубликованного кода я бы рекомендовал вам начать новый сеанс R и снова прочитать файлы со следующим кодом
do.call(rbind, lapply(list.files(pattern = ".csv"), read.csv))
Если у вас есть только данные с одинаковым количеством столбцов и имен столбцов в вашей глобальной среде, то следующее должно работать (не-data.frame объект не имеет значения):
do.call(rbind, eapply(.GlobalEnv,function(x) if(is.data.frame(x)) x))
Это небольшое улучшение в ответе MentatOfDune, которое не захватывает data.frames с несколькими классами:
ls()[grepl('data.frame', sapply(ls(), function(x) class(get(x))))]
Функция ls
перечисляет все вещи в вашей среде. Функция get
получает переменную с заданным именем. Вы можете использовать функцию class
, чтобы получить класс переменной.
Если вы поместите их все вместе, вы можете сделать это:
ls()[sapply(ls(), function(x) class(get(x))) == 'data.frame']
, который вернет символ вектор данных. Кадры в текущей среде.
Эта функция должна возвращать правильный список со всеми data.frames в качестве элементов
dfs <- Filter(function(x) is(x, "data.frame"), mget(ls()))
, тогда вы можете их перевернуть с помощью
do.call(rbind, dfs)
Конечно, это ужасно глупо есть куча data.frames, лежащих вокруг, которые так связаны, что вы хотите rbind
их. Похоже, что они, вероятно, должны были быть в списке в первую очередь.
Я рекомендую вам сказать от assign()
, что всегда является признаком того, что, вероятно, это не так. Попробуйте
temp <- list.files(pattern="*.csv")
dfs <- lapply(temp, read.csv)
, который должен немедленно вернуть список.
Чтобы улучшить ответ MentatOfDune (отличное имя пользователя кстати):
ls()[sapply(ls(), function(x) any(class(get(x)) == 'data.frame'))]
Это также поддерживает tibbles (например, созданный с помощью dplyr
), поскольку они содержат несколько классов, где data.frame
один из них.