R 資料集轉換 CSV 檔案

說明

    • 載入 R 資料集 iris

    • 變更欄位名稱

    • 變更名目欄位為字串欄位

    • 變更特定名目值為指定字串

    • 變更字串欄位為名目欄位

  • 擴充標準 Summary 功能

  • 新增一欄標準差

    • 濾過非數值欄

    • 萬用程式庫

程式碼

rm(list=ls()) data('iris') colnames(iris) <- c('FactorX1', 'FactorY1', 'FactorX2', 'FactorY2', 'Failure') iris$Failure <- as.character(iris$Failure) iris$Failure[iris$Failure == 'setosa'] <- 'A' iris$Failure[iris$Failure == 'versicolor'] <- 'B' iris$Failure[iris$Failure == 'virginica'] <- 'C' iris$Failure <- as.factor(iris$Failure) write.csv(iris, file = "RE.csv", row.names=FALSE)

options(digits=2) rm(list=ls()) sink("RE.log") RE <- read.csv(file="RE.csv") Summary.FactorX1 <- summary(RE$FactorX1) Summary.FactorX1 <- c(Summary.FactorX1, sd(RE$FactorX1)) Summary.FactorY1 <- summary(RE$FactorY1) Summary.FactorY1 <- c(Summary.FactorY1, sd(RE$FactorY1)) Summary.FactorX2 <- summary(RE$FactorX2) Summary.FactorX2 <- c(Summary.FactorX2, sd(RE$FactorX2)) Summary.FactorY2 <- summary(RE$FactorY2) Summary.FactorY2 <- c(Summary.FactorY2, sd(RE$FactorY2)) RE.Summary <- rbind(Summary.FactorX1) rownames(RE.Summary)[1] <- 'FactorX1' RE.Summary <- rbind(RE.Summary, Summary.FactorY1) rownames(RE.Summary)[2] <- 'FactorY1' RE.Summary <- rbind(RE.Summary, Summary.FactorX2) rownames(RE.Summary)[3] <- 'FactorX2' RE.Summary <- rbind(RE.Summary, Summary.FactorY2) rownames(RE.Summary)[4] <- 'FactorY2' colnames(RE.Summary)[7] <- 'StdDev.' RE.Summary sink()

rm(list=ls()) sink("RE-1.log") PrepareData <- function(csvFile='RE.csv') { RE <- read.csv(csvFile) fieldNames <- colnames(RE) RE_Summary <- NULL for (fieldName in fieldNames) { if (class(RE[, fieldName]) == 'numeric') { Summary.Field <- c(summary(RE[, fieldName]), sd(RE[, fieldName])) if (is.null(RE_Summary)) { RE_Summary <- Summary.Field } else { RE_Summary <- rbind(RE_Summary, Summary.Field) } } } i = 1 for (fieldName in fieldNames) { if (class(RE[, fieldName]) == 'numeric') { rownames(RE_Summary)[i] <- fieldName i = i + 1 } } colnames(RE_Summary)[7] <- 'StdDev.' RE_Summary } options(digits=1) PrepareData() sink()

輸出

Min. 1st Qu. Median Mean 3rd Qu. Max. StdDev. FactorX1 4.3 5.1 5.8 5.8 6.4 7.9 0.83 FactorY1 2.0 2.8 3.0 3.1 3.3 4.4 0.44 FactorX2 1.0 1.6 4.3 3.8 5.1 6.9 1.77 FactorY2 0.1 0.3 1.3 1.2 1.8 2.5 0.76