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