原文鏈接:http://www.datastudy.cc/to/53
網上有網友問到:在一個文件夾下,收集了幾個股票數據的文件,對應的股票名稱爲第2列,對應的時間爲第3列,對應的收盤價爲第10列。
現在想做到下圖所示的效果,也就是行爲時間,列爲對應的股票的收盤價,如何使用R語言來實現呢?
其實非常地簡單,這個就是我們《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,請右鍵在新標籤頁中打開鏈接)中的章節。