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
>
+ 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] "迪西"
>
+ 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, ]