R 語言 for loop & 資料堆疊

R 語言  for loop & 資料堆疊

先來個 for loop 簡單的例子 

for (i in 1:10) {
  print(i)
}

其中 (i in 1:10) 
就是 i 變數 會依序當做1~10
去做大括號 { } 內的工作
這個例子我們設定的工作就只是 印出 當時 i 的數值
結果如下

> for (i in 1:10) {
+   print(i)
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10

我們再看下一個例子

for (i in c('丁丁','拉拉','小波','迪西')) {
  print(i)
}
> for (i in c('丁丁','拉拉','小波','迪西')) {
+   print(i)
+ }
[1] "丁丁"
[1] "拉拉"
[1] "小波"
[1] "迪西"

所以 i 並不需要遵循一個數字(vector)
也可以使用字串(vector)

 

資料堆疊
先看看這個有趣的函數 list.files('C:/google/R123/xlsx', full.names = TRUE)
這函數可以依據給定的路徑,找到該位置內的所有檔案名稱
可以補上參數full.names = TRUE函數能夠傳回每個檔案的完整路徑和檔名
甚至可以只回傳指定副檔名的檔案

多個CSV檔,自動合併組合,程式碼如下:
dff=NA

for (i in list.files('C:/google/R123/xlsx', full.names = TRUE)) {
  print(i)
  
  dff2=read.csv(list.files('C:/google/R123/xlsx', full.names = TRUE)[1])
  
  dff=rbind(dff,dff2)
  rm(dff2)
}

最後會有一排是多餘的 NA,事後刪掉即可
dff = dff[-1, ]