Kama
Jansen
Student, Akademia
Medyczna w
Amsterdamie
Temat: operacje na danych z kilku plikow
Mam prosbe czy ktos moze mi pomoc napisac taka funkcje ktora liczy to samo ale dla danych z kilku plikow. Znaczy tak mam pliki ktore nazywaja sie dse....csv i w nich jest taki sam format danych, w 19 kolumnach. Aby policzyc to o co mi chodzi dla jednego pliku robie:najpierw czytam pierwszy pliczek:
dse <- read.csv2("C:/Documents and ettings/dse02.csv", header=T)
potem obliczam o co mi chodzi:
minS1 <- tapply(dse$Sensor1,dse$measurement,min)
maxS1 <- tapply(dse$Sensor1,dse$measurement,max)
minS2 <- tapply(dse$Sensor2,dse$measurement,min)
maxS2 <- tapply(dse$Sensor2,dse$measurement,max)
minS3 <- tapply(dse$Sensor3,dse$measurement,min)
maxS3 <- tapply(dse$Sensor3,dse$measurement,max)
minS4 <- tapply(dse$Sensor4,dse$measurement,min)
maxS4 <- tapply(dse$Sensor4,dse$measurement,max)
minS5 <- tapply(dse$Sensor5,dse$measurement,min)
maxS5 <- tapply(dse$Sensor5,dse$measurement,max)
minS6 <- tapply(dse$Sensor6,dse$measurement,min)
maxS6 <- tapply(dse$Sensor6,dse$measurement,max)
minS7 <- tapply(dse$Sensor7,dse$measurement,min)
maxS7 <- tapply(dse$Sensor7,dse$measurement,max)
minS8 <- tapply(dse$Sensor8,dse$measurement,min)
maxS8 <- tapply(dse$Sensor8,dse$measurement,max)
minS13 <- tapply(dse$Sensor13,dse$measurement,min)
maxS13 <- tapply(dse$Sensor13,dse$measurement,max)
diffS1 <- maxS1 - minS1
diffS2 <- maxS2 - minS2
diffS3 <- maxS3 - minS3
diffS4 <- maxS4 - minS4
diffS5 <- maxS5 - minS5
diffS6 <- maxS6 - minS6
diffS7 <- maxS7 - minS7
diffS8 <- maxS8 - minS8
diffS13 <- maxS13 - minS13
i zapisuje do pliku wyjsciowego:
res_diff_02 <- as.data.frame(t(rbind(diffS1, diffS2, diffS3, diffS4, diffS5, diffS6, diffS7, diffS8, diffS13)))
write.csv2(res_diff_02, file="C:/Documents and Settings/res_diff_02.csv")
moj problem jest taki ze ja takich pliczkow mam dosc sporo i musialabym robic dla wszyskich recznie, ale oczywiscie lepiej zrobic w funkcji i tu jest problem...
myslalam zeby zrobic cos takiego:
setwd("C:/Documents and Settings/")
files.dse = list.files()[grep("dse", list.files())]
resultat= c()
for(i in 1:length(files.dse))
..... (tu mialyby byc obliczenia, tak jak powyzej, ale globalnie
minS1 <- tapply(dse$Sensor1,dse$measurement,min) )
write.csv2(resultat, file="C:/Documents and Settings/res_diffs[i].csv")
To oczywiscie nie dziala, bo nie wiem jak zrobic globalnie to co ma byc obliczane, a poza tym to
files.dse = list.files()[grep("dse", list.files())]
tez nie jest dobrze bo to mi daje tylko liste plikow a nie pliki.
Czy ktos wie jak to zrobic? Bede wdzieczna za pomoc.