2.1.1 向量(vector) - Data Thinking with R

文章推薦指數: 80 %
投票人數:10人

資料結構(data structure) ... R 語言中的資料結構除了一般程式語言常見結構外(vector, matrix, array, list),還 ... 使用 [ ] 進行元素的取代與新增. Perface 1Introduction 1.1Prerequisites 1.2WorkingDirectory 1.2.1Rproject 1.3Packages 1.4Resources 2RBasic 2.1變數與常用資料結構 2.1.1向量(vector) 2.1.2資料框(data.frame) 2.1.3類別物件(factor) 2.1.4陣列或矩陣(matrix) 2.1.5序列(list) 2.1.6特殊變數介紹 2.2基本運算 2.2.1數學運算 2.2.2基礎統計 2.2.3文字處理 2.3基礎I/O 2.3.1Input/Output 2.3.2TroubleShooting 2.4控制流程與自訂函數 2.5綜合演練 2.5.1FirstSteptoDataAnalysis 2.5.2Conditionalslicing 2.5.3Write/Readfile 3ETL-Usingdplyr 3.1DataWrangling 3.2Dataset 3.3PipelineStyle 3.4library(dplyr) 3.4.1select 3.4.2filter 3.4.3mutate 3.4.4group_by 3.4.5summarise 3.4.6arrange 3.4.7bind 3.5library(reshape2) 3.5.1melt 3.5.2cast 3.6綜合演練 3.7CrossAnalysis 4EDA-Usingggplot2 4.1EDA 4.2library(ggplot2) 4.2.1Scatterplot 4.2.2LineChart 4.2.3Histogram 4.2.4BarChart 4.2.5PieChart 4.3facet_ 4.4library(gridExtra) 4.5library(plotly) 5Reporting-Usingrmarkdown 5.1Markdown(*.md) 5.2RMarkdown(*.Rmd) 6DataAcquisition 6.1OpenData 6.2FromLocalFiles 6.3BatchDownload&import 6.4AccessinganAPI 7UsingDatabase 7.1RDatabaseInterface(DBI) 7.2Sqlite 8ElementaryStatistics-QuickReview 8.1Preliminaries 8.2DescriptiveStatistics 8.2.1Cross-Analysis 8.2.2Correlation 8.3ExploratoryDataAnalysis 8.4HypothesisTesting 8.4.1t-tests 8.4.2ANOVA 8.4.3MANOVA 8.5LinearModel 8.5.1SimpleLinearModel 8.6GeneralizedLinearModels 9MultivariateStatistics-QuickReview 9.1Preliminaries 9.2PrincipalComponentsAnalysis 9.3FactorAnalysis 9.4Clustering-kmeans ReleaseNotes DataThinkingwithR 2RBasic RafeC.H.Liu/JohnsonHsieh,LastUpdate:2018-07-10 2.1變數與常用資料結構 變數(variable) R語言中變數的賦值方式可以使用,1.數值>布林。

可利用以下函數自行轉換向量的類別:as.character,as.numeric,as.logical。

#向量只容許一種類別(字串>數值>布林) c(1,2,"three")#數值被轉換成字串 [1]"1""2""three" c(1,2,TRUE,FALSE)#布林值TRUE被轉換成1,FALSE被轉換成0 [1]1210 c(1.1,2.4,TRUE,FALSE) [1]1.12.41.00.0 c("one",2.4,TRUE)#所有元素都被轉換成字串 [1]"one""2.4""TRUE" #字串轉數字 a1,=,<=,==,!=)、邏輯運算子(&,|)以及負號(-)進行向量的取值。

此外,R也支援利用變數的名稱(names)來取值。

#1stand3rdelementsofvector x3 [1]TRUEFALSETRUE which(x>3)#whichindicesareTRUE [1]13 x[which(x>3)] [1]4.393.17 x[x>3]#simplifyexpression [1]4.393.17 y[y!="apple"] [1]"book""cat" y1["A"] A "apple" y1[y1=="apple"] A "apple" names(y1)[y1=="apple"] [1]"A" 向量元素取代與新增 使用[]進行元素的取代與新增 y3&z==TRUE,"v2"] [1]applecat Levels:applebabybookcat data.frame的合併 利用rbind(上下合併)、cbind(左右合併)對data.frame進行合併 xmatrix–>data.frame) matrix(1:4,nrow=2) [,1][,2] [1,]13 [2,]24 matrix(1:4,nrow=2,byrow=TRUE) [,1][,2] [1,]12 [2,]34 #取值:與data.frame相同 x5]#numeric(0) numeric(0) 100/0#Inf [1]Inf -pi/0#-Inf [1]-Inf 0/0#NaN [1]NaN Inf-Inf#NaN [1]NaN 2.2基本運算 2.2.1數學運算 x|t|) (Intercept)-0.3630760.039762-9.1314.7e-16*** Petal.Length0.4157550.00958243.387<2e-16*** --- Signif.codes:0'***'0.001'**'0.01'*'0.05'.'0.1''1 Residualstandarderror:0.2065on148degreesoffreedom MultipleR-squared:0.9271,AdjustedR-squared:0.9266 F-statistic:1882on1and148DF,p-value:<2.2e-16 2.2.3文字處理 StringManipulation 處理“string”型態之方法集合 正規表達式(regex)補充教材: 正規表達式 IntroductiontoStringMatchingandModificationinRUsingRegularExpressions r1條件控制->自訂函數,逐層分解 常用控制流程包含 迴圈:for(varinseq)expr seq:ex.1:10,1:nrow(x),c(4,5,6,7)(會從第一個位置開始取值) expr:使用{}標記程式執行範圍 條件控制:if(cond)expr1elseexpr2else..... cond:判斷條件一定須返回TRUE/FALSE,ex.a==b,a%in%b,is.na(a) 精簡版函式:ifelse(cond,TRUE,FALSE) 其餘控制流程:Quick-R:ControlFlow 自訂函數(f(x)) 可視為一個物件myfun4的資料 #WRITEYOURCODE 2.5.3Write/Readfile #WritetoCSVfile write.csv(iris,file='iris.csv') write.csv(iris,file='iris.csv',row.names=FALSE) #ReadaCSVfile data



請為這篇文章評分?