Я уже некоторое время использую python для работы с pandas фреймами данных. Я хочу переключить тот же код, который я использую, на R. Однако у меня нет особого опыта работы с R, и я не уверен, какие варианты у меня есть, чтобы сделать то же самое. У меня есть папка с множеством CSV-файлов, и у меня есть список имен файлов, которые я хотел бы перебрать и выполнить полное внешнее объединение файлов.
В pandas я бы запустил следующая команда,
import pandas as pd
filelist = pd.read_excel("/Users/XXX/Documents/test/data/list.xlsx") #contains a list of filenames in the File column around 8000 rows long
workingdf = pd.DataFrame() #create a blank data frame
for subdir in filelist.File:
df = pd.read_csv(f"/Users/XXX/Documents/test/data/{subdir}",index_col=0) #open file 2 columns named DATE and VALUE
df = df.rename(columns={"VALUE":subdir}) #rename the value column to the file name
workingdf = pd.merge(workingdf,df,how='outer',left_index=True,right_index=True)
Последняя часть кода объединяет все кадры данных в словаре в один большой кадр данных, используя полное внешнее объединение.
Я хочу взять несколько CSV файлы, которые у меня есть в папке, переберите список имен файлов, создайте таблицы данных из файлов и добавьте их один за другим, чтобы создать одну большую таблицу данных в R.
Я пытаюсь переключиться на R, потому что у меня проблемы с памятью и эффективностью, и кто-то предложил мне попробовать.
Как я могу запустить тот же набор команд в R? У меня нет особого опыта в этом, но у меня пока есть следующий код.
library(openxlsx)
library(data.table)
filelist <- openxlsx::read.xlsx("/Users/XXX/Documents/test/data/list.xlsx")
for (row in filelist[1]){
}
Я знаю, что мне нужно использовать tempdf = read.csv(paste("/Users/XXX/Documents/test/data/",row,sep""))
, чтобы создать путь к файлу и создать фрейм.
Функция переименования должна иметь вид names(tempdf)[2]<-row
Я также знаю, что должен использовать workingdf <- merge(workingdf,tempdf,by="DATE",all=TRUE)
Но я не знаю, с чего начать это потому, что я не могу создать пустой кадр данных, как в pandas, и просто начать объединять их. Есть предложения?