作者celestialgod (天)
看板R_Language
标题Re: [问题] 如何读入多个CSV档
时间Fri Jan 15 01:03:13 2016
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好让使用者填入。
--
R资料整理套件系列文:
magrittr #1LhSWhpH (R_Language) http://tinyurl.com/1LhSWhpH
data.table #1LhW7Tvj (R_Language) http://tinyurl.com/1LhW7Tvj
dplyr(上) #1LhpJCfB (R_Language) http://tinyurl.com/1LhpJCfB
dplyr(下) #1Lhw8b-s (R_Language)
tidyr #1Liqls1R (R_Language) http://tinyurl.com/1Liqls1R
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.73.232
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1452790996.A.F3A.html