Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R、 R编程,循环目录_R_Loops_Directory - Fatal编程技术网

R、 R编程,循环目录

R、 R编程,循环目录,r,loops,directory,R,Loops,Directory,嗨,我正试图通过excel文件目录进行循环分析 我的变量名为FileToGrab,它获取excel文件的名称 其中,粗体的FileToGrab是我希望数据帧命名的内容,而不是实际的FileToGrab数据帧 示例FileToGrab=2013ExcelSheet23 我希望我的数据帧命名为2013ExcelSheet23,而不是FileToGrab FileToGrab=2013ExcelSheet24 我希望我的数据帧命名为2013ExcelSheet24,而不是FileToGrab File

嗨,我正试图通过excel文件目录进行循环分析

我的变量名为FileToGrab,它获取excel文件的名称

其中,粗体的FileToGrab是我希望数据帧命名的内容,而不是实际的FileToGrab数据帧

示例FileToGrab=2013ExcelSheet23

我希望我的数据帧命名为2013ExcelSheet23,而不是FileToGrab

FileToGrab=2013ExcelSheet24

我希望我的数据帧命名为2013ExcelSheet24,而不是FileToGrab

FileToGrab=2013ExcelSheet25

我希望我的数据帧命名为2013ExcelSheet25,而不是FileToGrab

。。。。。等等

如果这没有意义,我很抱歉。谢谢

x <- 1:50
for(i in seq(along=x))
{


FileToGrab  = gsub("(^ +)|( +$)", "",listofFile[i])
FileToGrab  = str_replace_all(string=FileToGrab, pattern=" ", repl="")

DirFileName = paste("C:\\Users\\w47593\\Desktop\\RProjects\\CallCenterProjectJuly2013\\Files\\",FileToGrab)
DirFileName = str_replace_all(string=DirFileName, pattern=" ", repl="")

file.name <- DirFileName 
sheet.name <- "Detail"
FileToGrab = str_replace_all(string=FileToGrab, pattern=".xls", repl="")


## Connect to Excel File Pull and Format Data
excel.connect <- odbcConnectExcel(DirFileName)
**FileToGrab**  <- sqlFetch(excel.connect, sheet.name, na.strings=c("","-"))
odbcClose(excel.connect)


}
x为什么不使用

files = list.files(DirFileName)
然后遍历它,将它们加载到R中

使用文件名分配给对象:

objects = list()
objects[[files[1]]] = ...
为什么不使用

files = list.files(DirFileName)
然后遍历它,将它们加载到R中

使用文件名分配给对象:

objects = list()
objects[[files[1]]] = ...

您可能不想以数字开头命名对象,因为每次使用它们时都必须引用它们

> 11Foo <- 1
Error: unexpected symbol in "11Foo"
> `11Foo` <- 1
> 11Foo
Error: unexpected symbol in "11Foo"
> `11Foo`
[1] 1
你仍然需要通过

ll$"2013ExcelSheet25"
但你也可以使用

ll[["2013ExcelSheet25"]]
或者更好

ll[[1]]
甚至

ll[[which(names(ll) == "2013ExcelSheet25")]]

但是,由于这些都在一个列表中,因此包含了它们,您可以通过
lappy
和co对它们进行操作。

您可能不希望以数字开头命名对象,因为每次使用它们时都必须引用它们

> 11Foo <- 1
Error: unexpected symbol in "11Foo"
> `11Foo` <- 1
> 11Foo
Error: unexpected symbol in "11Foo"
> `11Foo`
[1] 1
你仍然需要通过

ll$"2013ExcelSheet25"
但你也可以使用

ll[["2013ExcelSheet25"]]
或者更好

ll[[1]]
甚至

ll[[which(names(ll) == "2013ExcelSheet25")]]

但是,由于这些都在一个列表中,所以它们都包含在其中,您可以通过
lappy
和co.

对它们进行操作……我不确定,但以数字开头的文件名在R中作为标识符可能并不实用;但是,函数
assign()
可能会帮助您将结果填充到一系列变量中,这些变量的名称在执行过程中已确定(因此,您可能需要类似于
assign(sprintf(“.Sheet.%s”,FileToGrab),sqlFetch(…)
)…..我不确定,但以数字开头的文件名在R中作为标识符可能并不实用;但是,函数
assign()
可能会帮助您将结果填充到一系列变量中,这些变量的名称在执行过程中已确定(因此,您可能需要类似
assign(sprintf(.Sheet.%s),FileToGrab),sqlFetch(…)
)的内容。您想要什么,掌声?当我注意到你更新了答案时,我立即删除了我的评论。你的答案很简洁,我的答案更接近于完整的解决方案,还有一些警告/解释。两者都有助于行动,那么愚蠢的态度是怎么回事?我不是在偷猎!很明显,在我的帖子被回复之前,我一直在努力工作,只是因为时间戳和帖子的长度。当你的两行回答出现时,我实际上已经完成了我的回答,而这两行回答并没有回答实际的问题。与此同时,你编辑了你的答案,我在添加了一些内容后发布了我的答案。如果我认为你的答案更好,我会删除我的答案(因为两个答案都是同时处理的,但我的答案没有什么新的,所以我删除了)。如果你认为这是一场看谁先回答的竞赛,那么你会失望的。它是关于提供好的答案,这些答案除了帮助最初的OP外,还有广泛的用处。长大很公平。批评收回你想要什么,掌声?当我注意到你更新了答案时,我立即删除了我的评论。你的答案很简洁,我的答案更接近于完整的解决方案,还有一些警告/解释。两者都有助于行动,那么愚蠢的态度是怎么回事?我不是在偷猎!很明显,在我的帖子被回复之前,我一直在努力工作,只是因为时间戳和帖子的长度。当你的两行回答出现时,我实际上已经完成了我的回答,而这两行回答并没有回答实际的问题。与此同时,你编辑了你的答案,我在添加了一些内容后发布了我的答案。如果我认为你的答案更好,我会删除我的答案(因为两个答案都是同时处理的,但我的答案没有什么新的,所以我删除了)。如果你认为这是一场看谁先回答的竞赛,那么你会失望的。它是关于提供好的答案,这些答案除了帮助最初的OP外,还有广泛的用处。长大很公平。撤回批评