2014-09-10 145 views
1

我想將一些「.xls」加載到R.該文件夾包含8個.XLS文件和8個.csv文件,我通過手動打開.xls文件並保存爲.csv。我意識到我可以使用gdata包中的read.xls()直接加載.xls文件,這對於以.xls格式接收數據很有幫助。但是,當我在3個最新的.xls文件中使用list.files()時,它們被錯過了列表。然而,它們的相關.csv包含在內。如果我打開文件並將它們轉換爲.xls,然後再次運行list.files(),它們將顯示出來,如果我在資源管理器中重命名它們,當我再次運行list.files時它們不會顯示。 Excel文件可能來自不同地區的Excel版本,因爲它們來自不同國家的辦公室,但我不認爲這會產生效果。list.files()找不到文件夾中的所有文件

這些文件通過電子郵件發送給我,因此我創建了一個新文件夾並將文件從Outlook保存到新文件夾,結果當我運行list.files()時也是如此,當我轉換它們時。

list.files(getwd()) 

回報

character(0) 

這沒有什麼區別,如果我使用list.files(getwd())或指定的文件擴展名。

我想知道我錯過了什麼,所以我可以避免必須單獨打開每個文件或在運行我的腳本時冒險丟失文件。

這個問題的道歉不可重現。

編輯

在Jbaum的建議,下面的代碼已運行和結果返回

shell(sprintf('dir /b %s', normalizePath(getwd())), intern=TRUE) 
[1] "'\\\\\\ **File path**'" 
[2] "CMD.EXE was started with the above path as the current directory."        
[3] "UNC paths are not supported. Defaulting to Windows directory."         
[4] "The system cannot find the file specified." 
attr(,"status") 
[1] 1 
Warning message: 
running command 'C:\WINDOWS\system32\cmd.exe /c dir /b \\\\ **File path**' had status 1 

注:我更換了**文件路徑**文件路徑,並有將反斜槓的數量增加一倍,使其顯示爲R

+0

你是否正確? 'getwd'是否會返回預期的路徑? – Roland 2014-09-10 12:16:39

+0

是的,getwd返回預期的路徑。重要的是要記住files.list返回**一些**但不是所有文件,並且當文件被轉換時它們會被列出,如果路徑不正確,則不會發生這種情況。 – 2014-09-10 12:22:54

+1

'list.files(all.files = TRUE)'的結果是什麼? – jbaums 2014-09-10 12:39:58

回答

0

問題在於與企業PC的網絡同步,而不是實際與R相關。

我正在使用的系統將所有文件從PC的C驅動器同步到網絡驅動器,所有程序的默認設置是在PC連接到網絡時查看網絡驅動器上的文件。

但是,當我從Outlook傳輸文件時,它們被存儲在文件夾的本地實例中,而沒有聯網,使得它們看不到網絡實例。

當我轉換使用Excel的新文件,這些文件是默認保存到網絡上,讓他們由R.可以看出,當系統通過同步過程中去的所有文件終於通過訪問R.

一在將來避免此問題的方法是在文件不可見的情況下進行手動同步以檢查這不是問題。

相關問題