如何将最新的csv文件导入RStudio
我正在尝试将最新的.csv文件从我的工作目录导入到R中。坚持认为这个方法以前是有效的,但现在似乎不再有效 每天一个.csv文件被输出到我指定的文件夹,从那里我将其导入RStudio进行操作。当前此文件夹中有2个文件 请参见以下代码和说明: 1) 以下代码检索目录中所有csv文件的名称如何将最新的csv文件导入RStudio,r,csv,import,R,Csv,Import,我正在尝试将最新的.csv文件从我的工作目录导入到R中。坚持认为这个方法以前是有效的,但现在似乎不再有效 每天一个.csv文件被输出到我指定的文件夹,从那里我将其导入RStudio进行操作。当前此文件夹中有2个文件 请参见以下代码和说明: 1) 以下代码检索目录中所有csv文件的名称 # find filenames of all .csvs in directory filenames <- Sys.glob("*.csv") > filenames [1] "February
# find filenames of all .csvs in directory
filenames <- Sys.glob("*.csv")
> filenames
[1] "February 26, 2018 at 03:59PM myfile.csv" "February 26, 2018 at 04:00PM myfile.csv"
#在目录中查找所有.csv的文件名
文件名文件名
[1] “2018年2月26日下午3:59 myfile.csv”“2018年2月26日下午4:00 myfile.csv”
2) 下一步是从文件名字符串中删除冗余信息,只保留日期信息:
# remove redundant file info
newdates <- sub("at.*", "", filenames)
> newdates
[1] "February 26, 2018 " "February 27, 2018 "
#删除冗余文件信息
新日期新日期
[1] “2018年2月26日”“2018年2月27日”
3) 然后我删除日期中的逗号
# remove comma from date string
newdates <- gsub('\\$|,', '', newdates)
> newdates
[1] "February 26 2018 " "February 27 2018 "
#从日期字符串中删除逗号
新日期新日期
[1] “2018年2月26日”“2018年2月27日”
4) 在这一步中,我更改了日期格式
# change to short date format
betterdate <- as.Date(newdates,format = "%B %d %Y")
> betterdate
[1] "2018-02-26" "2018-02-27"
#更改为短日期格式
更好的,更好的
[1] "2018-02-26" "2018-02-27"
5) 然后我将max(betterdate)设置为最新的文件
# takes latest file name as most recent file
latestfile <- max(betterDates)
> latestfile
[1] "2018-02-27"
#将最新文件名作为最新文件
最新文件最新文件
[1] "2018-02-27"
6) 最后我导入了这个文件
# import file with latest date
rawfile <- read.csv(file=latestfile, header=TRUE, sep=",")
#导入最新日期的文件
rawfile您可以使用which.max
获取最新日期的索引,并使用该索引从文件名
向量检索文件名
rawfile <- read.csv(file=filenames[which.max(betterdates), header=TRUE, sep=",")
rawfile如果您可以信任操作系统跟踪的创建时间:
data_files <- file.info(Sys.glob("*.csv"))
row.names(data_files)[which.max(data_files[["ctime"]])]
数据\u将日期传递给读取表的文件
(检查类(最新文件)
)。您需要将文件名作为与该日期对应的字符值传入。我不知道这是怎么回事。在寻求帮助时,您应该包括一个简单的示例输入和所需的输出,可用于测试和验证可能的解决方案。给出一个dput()
的filenames
并将代码放在一起,这样我们就可以轻松地复制/粘贴到R中来测试它。有两件事:1)不知何故,你的两个文件以不同的日期开始,以相同的日期结束。2) lastestfile
不是文件名,而是最大日期,您需要根据日期重建文件名,或者按照filenames[which.max(betterdates)执行操作
获取filename@emilliman5抱歉,文件日期已更正。如果我执行以下操作,您的解决方案似乎有效:x@emilliman5完全理解此问题。我很乐意接受此答案,因为这正是我所需要的。谢谢kindly@MrFlick我听到了。一经发现今天下午运行代码时出现的错误我也对它的工作方式感到困惑,但它确实起了作用。也许我后来无意中修改了代码并省略了一个步骤。现在我将按照@Emiliman的建议合并文件名[which.max(betterdates)
,谢谢你们的时间。非常感谢。