作者zmack0905 (降太) 看板: Statistics标题:
Re[问题] R 资料输入(由EXCEL->R)
时间Tue Sep 11 16:08:00 2012
後来改用别的方法去想,所以就乾脆再开一篇,旧的如果碍事麻烦请版主砍了他=口=
###读党
mydata <- read.csv(file.choose(), header = T)
mydata$date <- as.POSIXct(strptime(mydata$date, format = "%d/%m/%Y
%H:%M","GMT"))
head(mydata)
###全部一排
mydata2=melt(mydata, measure.vars =
c("X1","X2","X3","X4","X5","X6","X7","X8","X9","X10","X11","X12","X13","X14","X15","X16","X17","X18",
"X19" ,"X20", "X21","X22","X23","X24"))
head(mydata2)
####照污染物顺序,日期去排
mydata2=mydata2[order(mydata2$测项,mydata2$日期),]
head(mydata2,48)
###建立框架+写入,单项测值总数:8760
newdata=data.frame(Number=30,station="大里
",MeasureTime=seq(as.POSIXct("2011-01-01"),by ="hours",length=8760),
AMB_TEMP=mydata2[1:8760,5],
CH4=" ",
CO=mydata2[8761:17520,5],
NMHC=" ",
NO=mydata2[17521:26280,5],
NO2=mydata2[26281:35040,5],
NOx=mydata2[35041:43800,5],
O3=mydata2[43801:52560,5],
PM10=mydata2[52561:61320,5],
PM2.5=mydata2[61321:70080,5],
RAINFALL=mydata2[70081:78840,5],
RH=mydata2[78841:87600,5],
SHELT_TEMP=" ",
SO2=mydata2[87601:96360,5],
THC=" ",
UVB=" ",
WD_HR=mydata2[96361:105120,5],
WIND_DIREC=mydata2[105121:113880,5],
WIND_SPEED=mydata2[113881:122640,5],
WS_HR=mydata2[122641:131400,5])
head(newdata)
##写出
write.table(newdata, file="weather.finish.csv", sep=","header=TRUE)
-------------
将所有资料通通排一排以後,按照顺序把特定列数的资料摆进去
现在遇到的问题是,当资料有不同项(如THC,UVB不再是空白值),排序不同
这东西就爆炸了XD"
所以想利用指定行列的方式去排,即选择其测项为指定字串的列,及特定的行
原本写的是 THC=mydata2[3==THC,5]结果被说不是正确的下标
试了其他的写法也不行
整理一下....
需求:把资料结合到框架中指定行(Cloume)
列的选定:该列(row)其第三行(cloume)为指定的字串(如THC,CO等)都要选择
行的选定:直接指定mydata2第五行的数据
目标:将mydata2中的数据利用依照其测项为准,排入newdata的指定位置
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.29.185
※ 编辑: zmack0905 来自: 140.120.29.185 (09/11 16:53)
1F:→ gsuper:看不懂你在干吗 09/11 17:57
2F:→ gsuper:不过流程如下 1.excel档案存成 tab 隔开的 txt file 09/11 17:58
3F:→ gsuper:2. read.delim("xxx.txt",sep="\t",header=TRUE) 09/11 17:58
4F:→ gsuper:3. 要切掉 column , 移动资料 , 矩阵转置都属於资料处理 09/11 17:59
5F:→ gsuper:不要跟前面的东西混再一起 09/11 17:59