如何將Excel資料匯入至R並進行部分資料的轉置處理

305 views
Skip to first unread message

WEPA ^_^

unread,
Sep 10, 2012, 1:19:56 AM9/10/12
to taiwa...@googlegroups.com
感謝 James 提及以下之問題:
 

考慮每天24小時且每小時檢測並記錄20種不同項目(ITEM-01,ITEM-02,...,ITEM-20),每天相同項目且不同時間資料(每天同一個項目有24筆)記載於同一列。期望將資料匯入至R, 部份資料料進行轉置處理且結果中相同項目須置於同一直行?

參考附件:

01原始資料.jpg

02轉換後資料.jpg

weather.csv

01原始資料.jpg
02轉換後資料.jpg
weather.csv

WEPA ^_^

unread,
Sep 10, 2012, 1:27:04 AM9/10/12
to taiwa...@googlegroups.com
請參考以下R程式碼,主要利用 t( ) 指令將資料進行轉置,如有任何問題,歡迎再討論XD
 
#####
# Title: How to load and transfer raw data to Excel
# Date: 2012/9/10
# Author: Ming-Chang Lee
## copy weather.csv to "C:\R.data" and import raw data
setwd("c:/R.data")
weather <- read.table("weather.csv", header=TRUE, sep=",")
head(weather)
##
weather.function <- function(x) {
  for (i in seq(1:(dim(x)[1]/20))) {
    if (i==1) {
      x.select <- t(x[1:20,-c(1:3)])
    } else {
      row.start <- i*20-19
      row.end <- i*20
      x.select <- rbind(x.select, t(x[row.start:row.end, -c(1:3)]))
    }
  }
  row.names(x.select) <- NULL
  x.select <- as.data.frame(x.select)
  return(x.select)
}
weather.transfer <- weather.function(weather)
## set columns names
MeasureTime <- seq(as.POSIXct("2012-09-01"), by ="hours", length=dim(weather.transfer)[1])
weather.finish <- cbind(Number=35, station="南投", MeasureTime, weather.transfer)
names(weather.finish)[4:23] <- as.character(weather[1:20,3])
weather.finish
# export to csv file
write.table(weather.finish, file="weather.finish.csv", sep=",")
# end
#####
 
WEPA ^_^於 2012年9月10日星期一UTC+8下午1時19分56秒寫道:
How to load and transfer raw data to Excel.R

WEPA ^_^

unread,
Sep 10, 2012, 1:50:25 AM9/10/12
to taiwa...@googlegroups.com
請將 write.table( ) 改為以下指令, 輸出才正確:
 
# export to csv file
write.csv(weather.finish, file="weather.finish.csv", row.names = FALSE)
# end
 

WEPA ^_^於 2012年9月10日星期一UTC+8下午1時19分56秒寫道:
Reply all
Reply to author
Forward
0 new messages