R:导入大量CSV并对其进行操作(CSV不一致)

时间:2018-11-01 21:40:16

标签: r function csv dynamic

所以我每周都有大量的CSV文件放入文件夹,并且每周都有文件名和CSV文件更改次数。格式是一致的,我需要做的操作是一致的,但是输入是动态的。每个CSV本质上都是一个数据表,具有一个用户的唯一ID,一个电子邮件地址和一个二进制1/0(代表这些用户完成的操作)。请记住,我是R的新手,所以大多数时候我一直在这里找答案

基本上,我希望能够从此文件夹中上传所有CSV,然后动态引用这些表并每次对它们执行统一的操作。无论有4个表还是40个表,我都需要执行相同的操作。

需要执行的一项操作是从每个表中删除“ Id”列。稍后,我将使用电子邮件连接到表,并且ID列无用,因此删除列更容易。所有这些CSV都包含“ Id”列,因此从本质上讲,我只需要从所有表中删除ID。

这里是快速预览,也是我一直尝试的手动方式。

#sample CSV with long file name '2018_October_10_regional_users_action_x'
   ID       email address       action x
1 365367   joe.schmoe@email.com    1
2 953164   fake.guy@email.com      0

#sample CSV with long file name '2018_October_10_regional_users_action_z'
   ID       email addresss      action z
1 798842   Jill.fake@email.com     0
2 100321   madeup.j@email.com      1

#code I've been using
setwd(choose.dir())
temp <- list.files(pattern = "\\.csv" # picking all the csv's from my folder

#I was inserting these all as separate objects, since that's the way I know 
# how to do what I need, but super manual
#list2env(
  lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))),
        read_csv), envir = .GlobalEnv)

# Manual way I was dropping my column
2018_October_10_regional_users_action_x <- select(2018_October_10_regional_users_action_x, -Id)
2018_October_10_regional_users_action_z <- select(2018_October_10_regional_users_action_z, -Id)

我正在做其他一些事情,但是它们与本专栏的内容都相当简单和相似。因此,如果我能弄清楚如何做到这一点,则可以在其余的代码中应用它。

我尝试使用get和mget将它们放入列表中,然后构建一个函数或for循环,因为手动获取对象名称(通常很长)并一次构建一个这些函数是不可扩展的。 / p>

任何人都知道一种方法:1)动态引用表我输入的内容,2)动态引用函数或公式中的表来完成一些基本操作,类似于我上面引用的列删除?

0 个答案:

没有答案