首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中动态创建新列

在R中动态创建新列
EN

Stack Overflow用户
提问于 2021-06-03 05:20:44
回答 1查看 20关注 0票数 1

我正在尝试改进我的代码,避免重复行来导入具有相同名称结构的多个csvs:

代码语言:javascript
复制
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"

我设法实现了它来读取csv,但我不知道如何在数据框中插入创建新列WeekDate和为其提供日期值的部分。

代码语言:javascript
复制
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))
         
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-03 05:36:39

不建议在全局环境下创建多个对象。这可以通过存储在list (用于lambda (\(week_date))的R 4.1.0或使用function(week_date) )中轻松完成

代码语言:javascript
复制
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
   })

在OP的for循环中

代码语言:javascript
复制
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)
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67812740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档