如何優雅地使用R實現行轉列

        原文鏈接:http://www.datastudy.cc/to/53


        網上有網友問到:在一個文件夾下,收集了幾個股票數據的文件,對應的股票名稱爲第2列,對應的時間爲第3列,對應的收盤價爲第10列。


        現在想做到下圖所示的效果,也就是行爲時間,列爲對應的股票的收盤價,如何使用R語言來實現呢?

0.jpg

        其實非常地簡單,這個就是我們《R數據分析實戰》(http://www.datastudy.cc/to/48,請右鍵在新標籤頁中打開鏈接)中的交叉分析法的一個應用,下面我們來演示一下如何實現這個效果。


        數據文件,請大家從百度盤中自行下載:

        鏈接: http://pan.baidu.com/s/1hqARwpu 密碼: xx13

        allData <- NULL; 

        files <- list.files("D://data", recursive=T) 

        #合併文件,把所有數據合併到allData變量中

        for(file in files) { 

                fileName <- paste("D://data//", file, sep=""); 

                data <- read.csv(fileName, stringsAsFactors = FALSE); 

                if(is.null(allData)) { 

                        allData = data.frame(data[, c(2, 3, 10)]); 

                } else { 

                        allData <- rbind(allData, data[, c(2, 3, 10)]); 

                } 

        }; 

        #進行交叉分析,即可得到結果

        result <- tapply(allData$收盤價, list(allData$交易日期, allData$股票名稱), FUN=sum)


        至於交叉分析的詳細內容,請參考《R數據分析實戰》(http://www.datastudy.cc/to/48,請右鍵在新標籤頁中打開鏈接)中的章節。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章