R語言基礎培訓第一講 R語言入門_第1頁
R語言基礎培訓第一講 R語言入門_第2頁
R語言基礎培訓第一講 R語言入門_第3頁
R語言基礎培訓第一講 R語言入門_第4頁
R語言基礎培訓第一講 R語言入門_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、2什么是R?R是一種統(tǒng)計繪圖語言,也指實現(xiàn)該語言的軟件。The R Project for Statistical Computing 3為什么要學會R?SPSS(Statistical Package for the Social Sciences)的發(fā)明者諾曼奈伊(Norman Nie)說: “沒有什么統(tǒng)計概念是R不能表現(xiàn)的。5R R簡簡 史史 R語言是從語言是從S統(tǒng)計繪圖語言演變而來,可看作統(tǒng)計繪圖語言演變而來,可看作S的的方言方言。 S語言上世紀語言上世紀70年代誕生于貝爾實驗室,由約翰年代誕生于貝爾實驗室,由約翰錢伯斯(錢伯斯(John Chambers)開發(fā)。)開發(fā)。 基于基于S語

2、言開發(fā)的商業(yè)軟件語言開發(fā)的商業(yè)軟件Splus,可以方便的編寫函數(shù)、建立模型,可以方便的編寫函數(shù)、建立模型,具有良好的擴展性,在國外學術界應用很廣,對具有良好的擴展性,在國外學術界應用很廣,對SPSS 和和 SAS 有力沖擊。有力沖擊。 1995年由新西蘭年由新西蘭Auckland大學統(tǒng)計系的羅斯大學統(tǒng)計系的羅斯艾卡(艾卡(Ross Ihaka)和)和羅伯特羅伯特簡特曼(簡特曼(Robert Gentleman),基于),基于S語言的源代碼,編寫了一語言的源代碼,編寫了一能執(zhí)行能執(zhí)行S語言的軟件,并將該軟件的源代碼全部公開,這就是語言的軟件,并將該軟件的源代碼全部公開,這就是R軟件,其軟件,其命

3、令統(tǒng)稱為命令統(tǒng)稱為R語言。語言。R 的起源的起源Robert GentlemanRoss Ihaka自自1997年以后,有一個核心團隊,這一團隊能對年以后,有一個核心團隊,這一團隊能對 R 的源代碼進行修改。的源代碼進行修改。7多領域的統(tǒng)計資源多領域的統(tǒng)計資源 目前在目前在R網(wǎng)站上約有網(wǎng)站上約有8230個程序包,涵蓋了基礎統(tǒng)計學、社會學、個程序包,涵蓋了基礎統(tǒng)計學、社會學、經(jīng)濟學、生態(tài)學、空間分析、系統(tǒng)發(fā)育分析、生物信息學等諸多方面。經(jīng)濟學、生態(tài)學、空間分析、系統(tǒng)發(fā)育分析、生物信息學等諸多方面。免費開源免費開源統(tǒng)計分析能力突出統(tǒng)計分析能力突出作圖功能強大作圖功能強大拓展與開發(fā)能力強拓展與開發(fā)能

4、力強8 用戶需要對命令熟悉 與代碼打交道,需要記住常用命令。 幫助系統(tǒng)均為英文 占用內(nèi)存 所有的數(shù)據(jù)處理在內(nèi)存中進行,不適于處理超大規(guī)模的數(shù)據(jù)。 運行速度稍慢 即時編譯,約相當于C語言的1/20。如何學習如何學習R?R? 熟悉語法熟悉語法 訓練思維訓練思維 善于求助善于求助 熟能生巧熟能生巧 保持興趣保持興趣10R軟件首頁 / 11WindowsWindows下載和安裝下載和安裝R R下載完成后,雙擊下載完成后,雙擊R-3.2.4-win.exe 開始安裝。開始安裝。一直點擊下一步,各選項默認,語言建議選英文。一直點擊下一步,各選項默認,語言建議選

5、英文。12圖 4 R登陸界面(Windows版)路徑: 開始所有程序R 3.2.4菜單欄菜單欄快捷按鈕快捷按鈕控制臺控制臺光標光標:等待輸入等待輸入13R圖形界面:圖形界面:RstudioRstudio是是R的圖形界面之一,可以讓的圖形界面之一,可以讓 R 語言代碼更直觀、明了地運語言代碼更直觀、明了地運行。行。 RStudio 同樣同樣 是是 免費免費 和和 開源開源 的的 ,可以在網(wǎng)站上自由下載與使,可以在網(wǎng)站上自由下載與使用(用(http:/ 開始安裝。開始安裝。RStudio 有以下幾大優(yōu)點:有以下幾大優(yōu)點: 代碼字體高亮,代碼完整性智能識別、自動縮進;代碼字體高亮,代碼完整性智能識別

6、、自動縮進; 可直接執(zhí)行可直接執(zhí)行 R 程序代碼;程序代碼; 可運行多個可運行多個 R 程序;程序; 可直接瀏覽工作表和數(shù)據(jù);可直接瀏覽工作表和數(shù)據(jù); 可隨意縮放繪制的圖形,并且有多種輸出格式;可隨意縮放繪制的圖形,并且有多種輸出格式; 整合整合 R 幫助和幫助和 R 使用文檔;使用文檔; 可查看可查看 R 命令的運行記錄。命令的運行記錄。1517R R程序包(程序包(R PackagesR Packages)程序包是什么?程序包是什么? R程序包是多個函數(shù)的集合,具有詳細的說明和示例。程序包是多個函數(shù)的集合,具有詳細的說明和示例。 Window下的下的R程序包是經(jīng)過編譯的程序包是經(jīng)過編譯的z

7、ip包。包。每個程序包包含每個程序包包含R函數(shù)、數(shù)據(jù)、幫助文件、描述文件等。函數(shù)、數(shù)據(jù)、幫助文件、描述文件等。為什么要安裝程序包?為什么要安裝程序包? R程序包是程序包是R功能擴展,特定的分析功能,需要用相應的程序包實現(xiàn)。功能擴展,特定的分析功能,需要用相應的程序包實現(xiàn)。 例如:系統(tǒng)發(fā)育分析,常用到例如:系統(tǒng)發(fā)育分析,常用到ape程序包,群落生態(tài)學程序包,群落生態(tài)學vegan包等。包等。18install.views(Environmetrics)19三種平臺上的三種平臺上的程序包程序包20R R程序包程序包在在CRAN 提供了每個包的源代碼和編譯好的程序包提供了每個包的源代碼和編譯好的程序包

8、以以vegan包為例,包為例,CRAN提供了:提供了:Package source: vegan_1.17-2.tar.gz MacOS X binary: vegan_1.17-2.tgz Windows binary: vegan_1.17-2.zip Reference manual: vegan.pdf Window下程序包為下程序包為zip文件,安裝時不要解壓縮。文件,安裝時不要解壓縮。211 菜單安裝菜單安裝在聯(lián)網(wǎng)的條件下,按菜單欄在聯(lián)網(wǎng)的條件下,按菜單欄【程序包程序包】下拉選擇下拉選擇【安裝程序包安裝程序包】 ,選,選擇所需的程序包進行實時安裝;擇所需的程序包進行實時安裝;2 聯(lián)

9、網(wǎng)命令安裝聯(lián)網(wǎng)命令安裝例如:例如: 要安裝要安裝vegan包包,在控制臺中輸入在控制臺中輸入 install.packages(vegan)3 本地安裝本地安裝路徑:路徑:Packagesinstall packages from local files選擇本地磁盤上存儲選擇本地磁盤上存儲zip包的文件夾。包的文件夾。4 腳本安裝腳本安裝在聯(lián)網(wǎng)的條件下,請運行在聯(lián)網(wǎng)的條件下,請運行Rpackages.install.R程序,即可完成本培程序,即可完成本培訓所需的程序包安裝。訓所需的程序包安裝。22程序包使用與更新程序包使用與更新程序包的中函數(shù),都要先導入,再使用,因此導入程序包是第一步。程序包

10、的中函數(shù),都要先導入,再使用,因此導入程序包是第一步。在控制臺中輸入如下命令:在控制臺中輸入如下命令:library(lattice)library(ggplot2)所有程序包的更新所有程序包的更新update.packages()注意:注意:R 命令對大小寫敏感,因此使用命令方式安裝和載入程序包時命令對大小寫敏感,因此使用命令方式安裝和載入程序包時應特別注意。應特別注意。23查看程序包幫助文件查看程序包幫助文件vegan 程序包內(nèi)部都有哪些函數(shù)?分別有什么功能?程序包內(nèi)部都有哪些函數(shù)?分別有什么功能?查詢程序包內(nèi)容最常用的方法:查詢程序包內(nèi)容最常用的方法:1 菜單菜單 幫助幫助Html幫助幫

11、助2 查看查看pdf幫助文檔幫助文檔24查看函數(shù)的幫助文件查看函數(shù)的幫助文件函數(shù)的默認值是什么?函數(shù)的默認值是什么? 怎么使用?怎么使用? 使用時需要注意什么問使用時需要注意什么問題?題? 需要查詢函數(shù)的幫助。需要查詢函數(shù)的幫助。1 ?t.test 2 RGuiHelpHtml help3 apropos(t.test)4 help(t.test)5 help.search(t.test)6 查看查看R包包pdf手冊手冊2526幫助文件的內(nèi)容幫助文件的內(nèi)容 t.teststats #函數(shù)名及所在包函數(shù)名及所在包 Fitting Linear Models #標題標題 Description #

12、函數(shù)描述函數(shù)描述 Usage #默認選項默認選項 Arguments #參數(shù)參數(shù) Details #詳情詳情 Author(s) #作者作者 References #參考文獻參考文獻 Examples #舉例舉例27練習一練習一 安裝安裝R R并導入程序包并導入程序包1. 安裝安裝R和和Rstudio軟件、熟悉菜單軟件、熟悉菜單2. 本地安裝程序包本地安裝程序包: vegan3. 調(diào)用程序包,查看程序包的幫助調(diào)用程序包,查看程序包的幫助library(vegan)查找查找vegan包中包中cca函數(shù)的幫助函數(shù)的幫助輸入輸入 ?cca(試試(試試?cca)將其中的將其中的Example粘貼到控制

13、臺中,查看運行的結果。粘貼到控制臺中,查看運行的結果。R數(shù)據(jù)集創(chuàng)建數(shù)據(jù)集創(chuàng)建 數(shù)據(jù)創(chuàng)建數(shù)據(jù)創(chuàng)建 向量,數(shù)組,矩陣,數(shù)據(jù)框,列表,因子向量,數(shù)組,矩陣,數(shù)據(jù)框,列表,因子 數(shù)據(jù)輸入數(shù)據(jù)輸入 scan(),csv文件,文件,excel文件,文件,sas數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù)存儲數(shù)據(jù)存儲 write.table(), write.csv(), save()向量向量vector 概念:用于存儲數(shù)值型、字符型或邏輯型數(shù)據(jù)的概念:用于存儲數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。一維數(shù)組。 例子:例子: a - c(1, 2, 5, 3, 6, -2, 4) # 數(shù)值型向量數(shù)值型向量 b - c(one, two,

14、three) # 字符型向量字符型向量 c rep(2:5, 2) # 等價于等價于 rep(2:5, times = 2) 1 2 3 4 5 2 3 4 5 rep(2:5, rep(2, 4) 1 2 2 3 3 4 4 5 5 rep(1:3, times = 4, each = 2) 1 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 paste(c(X,Y), 1:10, sep = -) #不規(guī)則不規(guī)則1 X-1 Y-2 X-3 Y-4 X-5 Y-6 X-7 Y-8 X-9 Y-10 rep(factor(LETTERS1:3),

15、 5) 1 A B C A B C A B C A B C A B C Levels: A B C 向量中元素的訪問向量中元素的訪問a a3 1 5 # 向量向量 a 中第一、三、五個數(shù)據(jù)中第一、三、五個數(shù)據(jù) ac(1, 3, 5) 1 1 5 6 # 向量向量 a 中第二到第六個數(shù)據(jù)中第二到第六個數(shù)據(jù) a2:6 1 2 5 3 6 -2 # 向量向量 a 中數(shù)值大于中數(shù)值大于 3 的所有數(shù)據(jù)的所有數(shù)據(jù) aa3 1 5 6 4 # 去掉第一個值去掉第一個值 a-1 1 2 5 3 6 -2 4 # 去掉前三個值去掉前三個值 a-1:-31 3 6 -2 4 矩陣矩陣matrix概念概念:一個二

16、維數(shù)組一個二維數(shù)組#創(chuàng)建一個創(chuàng)建一個 22 的矩陣的矩陣 matrix(1:4, nrow = 2, ncol = 2) ,1 ,2 1, 1 3 2, 2 4 # 生成單位陣生成單位陣 diag(3) ,1 ,2 ,3 1, 1 0 0 2, 0 1 0 3, 0 0 1mat1-matrix(1:12,3,4, byrow=T)mat2 x x2,2 # 第二行、第第二行、第 2 列的元素列的元素 1 4 x2, # 第二行的所有元素第二行的所有元素 1 2 4 6 x ,2 # 第第 2 列的所有元素列的所有元素 1 3 4 x2, c(2, 3) # 第二行中第第二行中第 2、3 列的

17、元素列的元素 1 4 6 數(shù)據(jù)框數(shù)據(jù)框data frame使用函數(shù)使用函數(shù) data.frame( )創(chuàng)建:創(chuàng)建: mydata patientID age diabetes status patientdata patientdata1:2 # 第第 1、2 列的所有元素列的所有元素 patientdata$age # $符合用于選取一個指定的變量。符合用于選取一個指定的變量。 列表列表list R 數(shù)據(jù)類型中最為復雜的一種數(shù)據(jù)結構。數(shù)據(jù)類型中最為復雜的一種數(shù)據(jù)結構。列表就是包含任何類型的對象,可以是若干向量、矩陣、數(shù)據(jù)框,甚列表就是包含任何類型的對象,可以是若干向量、矩陣、數(shù)據(jù)框,甚至其他

18、列表的組合。至其他列表的組合。通過函數(shù)通過函數(shù) list( )來創(chuàng)建:來創(chuàng)建: mylist g h j k mylist province pf pf 1 四川四川 湖南湖南 江蘇江蘇 四川四川 四川四川 四川四川 湖南湖南 江蘇江蘇 湖南湖南 江蘇江蘇 Levels: 湖南湖南 江蘇江蘇 四川四川 數(shù)據(jù)的輸入數(shù)據(jù)的輸入1 鍵盤輸入鍵盤輸入mydata - data.frame(age = numeric(0), gender = character(0), weight = numeric(0) ) mydata - edit(mydata) # 輸入或修改輸入或修改 mydata 中的數(shù)

19、據(jù)中的數(shù)據(jù)2 使用使用 scan()函數(shù)函數(shù)mydata - scan( file = ex.data, what = list(, 0, 0 ) #將壓縮型數(shù)據(jù)讀入一個向量或列表將壓縮型數(shù)據(jù)讀入一個向量或列表3 導入導入 csv 文件文件mydata2 - read.table( file = D:/dbh.csv, header = T, sep = , ) mydata3 - read.csv( file = D:/dbh.csv, header = T) 4 網(wǎng)絡中讀取表格或網(wǎng)絡中讀取表格或csv文件文件tbl-read.csv(http:/ 導入導入 Excel 數(shù)據(jù)數(shù)據(jù)librar

20、y(RODBC)channel - odbcConnectExcel( d:/test.xls )mydata - sqlFetch( channel, Sheet1 )channel2 - odbcConnectExcel2007( d:/test.xlsx )mydata2 - sqlFetch( channel, Sheet1 )6 導入導入 SAS 數(shù)據(jù)數(shù)據(jù)library(foreign)mydata - read.sas( d:/test.ssd )library(Hmisc)data - sas.get( D:/test.ssd )7 導入導入 SPSS 數(shù)據(jù)數(shù)據(jù)library(f

21、oreign)mydata df write.table( df , file = D:/Rdata/fg.txt, s = F, quote = F ) # s = F :不寫入行名,不寫入行名,quote = F :變量名不用雙引號。變量名不用雙引號。(2) 保存為保存為 csv 文件文件 write.csv( df , file = D:/Rdata/fg.csv )(3) 保存為保存為 R 格式文件格式文件 save( df , file = D:/Rdata/fg.Rdata )R數(shù)據(jù)操作數(shù)據(jù)操作變量創(chuàng)建與刪除變量創(chuàng)建與刪除mydata - data.

22、frame( x1 = c(2, 2, 6, 4), x2 = c(3, 4, 2, 8) )# 方法一方法一mydata$sum - mydata$x1 + mydata$x2mydata$mean - (mydata$x1 + mydata$x2)/2# 方法二方法二mydata - transform( mydata, sum = x1 + x2, mean = (x1 + x2)/2 )# 變量刪除變量刪除mydata$ mean - NULL 變量的重命名變量的重命名df - mydata第一種方法:調(diào)用編輯器重命名第一種方法:調(diào)用編輯器重命名fix(df)第二種方法:使用函數(shù)第二種

23、方法:使用函數(shù) names( )重命名重命名names(df)names(df)1:3 - c(A, B, C)缺失值的處理缺失值的處理 缺失值:缺失值:NA (Not Available,不可用,不可用) 不可能出現(xiàn)的值:不可能出現(xiàn)的值:NaN(Not a Number,非數(shù)值,非數(shù)值) 函數(shù)函數(shù) is.na()可檢測缺失值是否存在??蓹z測缺失值是否存在。例子例子x - c(1:3, 5,7, NA, 9)sum(x) # 結果為結果為 NAsum( x, na.rm = T ) # 結果為結果為 27數(shù)據(jù)類型的轉換數(shù)據(jù)類型的轉換數(shù)據(jù)轉換例子數(shù)據(jù)轉換例子Rep - c( 1:6 ) # Re

24、p 賦值賦值is.numeric(Rep) # 數(shù)值型判斷:真數(shù)值型判斷:真is.factor(Rep) # 因子判斷:假因子判斷:假Rep - as.factor(Rep) # 轉換為因子轉換為因子is.factor(Rep) # 因子判斷:真因子判斷:真數(shù)據(jù)的排序數(shù)據(jù)的排序 R 自帶的自帶的 order( )函數(shù)函數(shù) plyr 程序包的程序包的 arrange( )函數(shù)函數(shù)# 按按 x1,x2先后依次排序先后依次排序# R 自帶的自帶的 order( )排序排序df order(-df$x1,df$x2), #plyr 程序包的程序包的 arrange( )函數(shù)排序函數(shù)排序library(

25、plyr)arrange( df, -x1, x2) 排序例子排序例子# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框df - data.frame (id = 1:4,weight = c(20, 27, 24, 22),size = c(small, large, medium, large)# id weight size# 1 20 small# 2 27 large# 3 24 medium# 4 22 large# R 自帶的自帶的 order( )函數(shù)函數(shù)dforder(df$weight), dforder(df$size,df$weight), dforder(df$size,-df$weight)

26、, # plyr 包的包的 arrange( )函數(shù)函數(shù)library(plyr)arrange(df, weight)arrange(df, size, weight)arrange(df, size, -weight)排序例子排序例子(非同一數(shù)據(jù)框)非同一數(shù)據(jù)框)有兩列數(shù)據(jù)在一個數(shù)據(jù)框有兩列數(shù)據(jù)在一個數(shù)據(jù)框dataA B1 小明小明2 小王小王3 小李小李4 小張小張現(xiàn)輸入一列數(shù)現(xiàn)輸入一列數(shù)gg2143要求顯示出要求顯示出A B2 小王小王1 小明小明4 小張小張3 小李小李答案:答案:dataorder(gg),數(shù)據(jù)集的合并數(shù)據(jù)集的合并 列合并列合并# 共有變量共有變量: IDtotal

27、 - merge(dataA, dataB, by = ID) #解釋見代碼解釋見代碼# 共有變量共有變量: ID、Countrytotal - merge(dataA, dataB, by = c(ID, Country)#含有一樣的行數(shù),而且以相同順序排序。含有一樣的行數(shù),而且以相同順序排序。total - cbind(dataA, dataB)列合并例子列合并例子# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框 dataAdataA - read.table( header = T, text = storyid title1 lions2 tigers3 bears)# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框 dataBdat

28、aB - read.table( header = T, text = subject storyid rating1 1 6.71 2 4.52 2 3.32 1 5.2)# 合并數(shù)據(jù)框合并數(shù)據(jù)框 dataA, dataBmerge(dataA, dataB, storyid)# 將將 dataA 的的 stroyid 重命名為重命名為 idcolnames(dataA)1 - c(Id)merge(x = dataA, y = dataB, by.x = id, by.y = storyid) 現(xiàn)在有某一地區(qū)的植物名錄表格現(xiàn)在有某一地區(qū)的植物名錄表格gao.csv, 表格內(nèi)只有兩列,表格內(nèi)

29、只有兩列,分別為分別為中文名中文名和和name , 現(xiàn)在有中國現(xiàn)在有中國IUCN植物紅色名植物紅色名錄數(shù)據(jù)庫表格錄數(shù)據(jù)庫表格chinaIUCN.csv(表格內(nèi)只有兩列,分別為瀕(表格內(nèi)只有兩列,分別為瀕危等級危等級level和和species )。我們需要通過匹配兩個表格獲。我們需要通過匹配兩個表格獲得該地區(qū)植物的得該地區(qū)植物的IUCN評估等級表。評估等級表。aa - read.csv(chinaIUCN.csv)sp - read.csv(gao.csv)bb - merge(aa, sp, by.x = species, by.y =name, all.y = T) head(bb)wri

30、te.csv(bb,gaoIUCN.csv)列合并的案例分析列合并的案例分析行合并行合并 total - rbind(dataA, dataB) 注意:注意:dataA 與與 dataB 需含有一樣的變量,需含有一樣的變量,但排列的順序可以不同。但排列的順序可以不同。行合并例子行合并例子dfA - data.frame( Subject = c(1, 1, 2, 2), Response = c(X, X, X, X) )dfB - data.frame( Subject = c(1, 2, 3), Response = c(Z, Y, Z) )df - rbind(dfA, dfB)dfA$

31、Coder - AdfB$Coder - Bdf - rbind(dfA, dfB)數(shù)據(jù)子集的提取數(shù)據(jù)子集的提取 3.7.1 根據(jù)位置選取子集根據(jù)位置選取子集使用方法如下:使用方法如下:dfm1, 表示返回第表示返回第 m1 行的數(shù)據(jù)行的數(shù)據(jù)dfc(m1,m2,. ,mj), 表示返回由第表示返回由第 m1,m2,.mj 行組成的數(shù)據(jù)框行組成的數(shù)據(jù)框df ,n1 表示返回第表示返回第 n1 列的數(shù)據(jù)列的數(shù)據(jù)df ,c(n1,n2,. ,nk) 表示返回由第表示返回由第 n1,n2,.nk 列組成的數(shù)據(jù)框列組成的數(shù)據(jù)框例子例子# 創(chuàng)建數(shù)據(jù)框創(chuàng)建數(shù)據(jù)框df - read.table( header = T, te

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論