У меня есть несколько фреймов данных с разными именами и одной и той же переменной даты.Я хочу изменить тип переменной на yearmon
.Я пытался создать список со всеми фреймами данных и изменить тип, но я не могу unlist
данные, как это было.Перепробовал все коды на этом сайте, но всегда есть какая-то ошибка.Я думаю, что в моем случае я должен подходить к этому с помощью цикла.
Это код на данный момент:
df=data.frame(date=c("201101","201102","201103"),value=c(3,4,6))
df2=data.frame(date=c("201101","201102","201103"),value=c(3,4,6))
df3=data.frame(date=c("201101","201102","201103"),value=c(3,4,6))
library(zoo)
# list of all impoted dataframes
files <- ls()[sapply(mget(ls(), .GlobalEnv), is.data.frame)]
for (i in files){ #search for the dataframe name
for (j in length(get(i)[,1])){ #get the length of current data frame
d[j]=get(i)[j,1] #gets current data frame’s Date_col (the column with date)
d[j] <- as.yearmon(as.character(d[j,]), "%Y%m") #convert
assign(get(i)[j,1],d[j]) # an error shows here
}
}
Это код, который я пробовал для кадров данных в списке.
l.df <- lapply(ls(), function(x) if (class(get(x)) == "data.frame")
get(x))
files <- ls()[sapply(mget(ls(), .GlobalEnv), is.data.frame)]
names(l.df) <- files
lapply(l.df, transform, date=as.yearmon(as.character(date, "%Y%m")))
Возвращает NA для даты.