在R中动态创建一个新列
我试图改进代码,避免重复导入多个同名结构的CSV:在R中动态创建一个新列,r,list,dataframe,for-loop,assign,R,List,Dataframe,For Loop,Assign,我试图改进代码,避免重复导入多个同名结构的CSV: iOS_Weekly_Active_Users_20210301 <- read.csv("iOS_Weekly_Active_Users_20210301.csv", header = T) iOS_Weekly_Active_Users_20210301$WeekDate <- "2021-03-01" iOS_Weekly_Active_Users_20210308 <- read
iOS_Weekly_Active_Users_20210301 <- read.csv("iOS_Weekly_Active_Users_20210301.csv", header = T)
iOS_Weekly_Active_Users_20210301$WeekDate <- "2021-03-01"
iOS_Weekly_Active_Users_20210308 <- read.csv("iOS_Weekly_Active_Users_20210308.csv", header = T)
iOS_Weekly_Active_Users_20210308$WeekDate <- "2021-03-08"
iOS_Weekly_Active_Users_20210315 <- read.csv("iOS_Weekly_Active_Users_20210315.csv", header = T)
iOS_Weekly_Active_Users_20210315$WeekDate <- "2021-03-15"
iOS_Weekly_Active_Users_20210322 <- read.csv("iOS_Weekly_Active_Users_20210322.csv", header = T)
iOS_Weekly_Active_Users_20210322$WeekDate <- "2021-03-22"
不建议在全局环境中创建多个对象。这可以通过在
列表中存储(用于lambda的R 4.1.0
(\(星期日)
)或使用函数(星期日)
轻松完成
week_date_list <- c("20210301", "20210308", "20210315", "20210322" )
for(week_date in week_date_list){
assign(paste0("iOS_Weekly_Active_Users_", week_date), read.csv(paste0("iOS_Weekly_Active_Users_", week_date, ".csv"), header = T))
}
lst1 <- lapply(week_date_list, \(week_date) {
tmp <- read.csv(paste0("iOS_Weekly_Active_Users_",
week_date, ".csv"), header = TRUE)
tmp$WeekDate <- as.Date(week_date, format = "%Y%m%d")
tmp
})
for(week_date in week_date_list){
tmp <- read.csv(paste0("iOS_Weekly_Active_Users_", week_date, ".csv"),
header = TRUE)
tmp$WeekDate <- as.Date(week_date, format = "%Y%m%d")
assign(paste0("iOS_Weekly_Active_Users_", week_date), tmp)
}