Re: [問題] 如何讀入多個CSV檔

作者: celestialgod (天)   2016-01-15 01:03:13
data_1.csv:
ID, time, A, B
1, 0, 1.2, 9
2, 1, 1.5, 7
3, 3, 2.3, 5
4, 4, 3.1, 4
data_2.csv:
ID, time, A, B
1, 0, 0.9, 11
2, 2, 1.2, 2
3, 4, 2.3, 3
4, 5, 3.7, 2
file_list <- c('data_1.csv', 'data_2.csv')
table_list <- vector('list', length(file_list))
for (i in seq_along(file_list))
table_list[[i]] <- read.csv(file_list[[i]])
out_f = function(data, pullution_type, filter_ID)
{
s <- 0
for (i in seq_along(data))
{
s <- s + sum(subset(data[[i]],
ID %in% filter_ID)[[pullution_type]])
}
return(s)
}
out_f(table_list, 'A', 1:2) # 4.8
※ 引述《clansoda (小笨)》之銘言:
: 是這樣的,導師給我們的題目是他給一個資料擁有332個CSV檔案
: 這個在文章裡面提過,每個CSV檔案都有四個變數分別是時間
: 、兩種空氣汙染假設為汙染A和汙染B都是numeric變數、最後是ID變數。
: 主要是要寫出一個function讓跑出來的數值會是汙染變數的平均數。
: 最後的結果要是function(data進去,指定A汙染或B汙染,ID 例如2:70)
: function出來以後會是某個數值,就是A汙染或者B汙染在2到70號
: CSV的數值總和然後平均 ,我現在的問題是如果我寫function
: 以後後面的變數要怎麼設定才會是讓使用者填入資料,因為課堂上
: 教的都是給一個X或Y值然後變數裡面關聯變數來計算但是沒看過
: 還可以讓使用者選要填入變數名稱的所以不知道該如何寫起。就是第二個
: argument讓使用者填入A汙染或B汙染其中一種,這個不知道要怎麼寫前面
: 的argument好讓使用者填入。

Links booklink

Contact Us: admin [ a t ] ucptt.com