學(xué)習(xí)小組DAY5筆記 數(shù)據(jù)結(jié)構(gòu)-嗷嗚

今天學(xué)習(xí)內(nèi)容是R語言的數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)資料主要來源:微信公眾號生信星球

關(guān)于R語言代碼的編寫:
(1)R的賦值符號不是等號,而是<-
(2)在Console 控制臺輸入命令,相當于Linux的命令行
(3)R的代碼都是帶括號的,括號必須是英文的。
(4)顯示工作路徑 getwd()
(5)向量是由元素組成的,元素可以是數(shù)字或者字符串。
(6)表格在R語言中改名叫數(shù)據(jù)框
(7)可用這個命令查看幫助:?read.table,調(diào)出對應(yīng)的幫助文檔,翻到example部分研究一下。
(8)R代碼是嚴格區(qū)分大小寫的。
(9)R的數(shù)據(jù)類型有:向量(vector),矩陣(matrix),數(shù)組(array),數(shù)據(jù)框(data frame),列表(list)

一、向量

1. 標量和向量的區(qū)分

標量:一個元素組成的變量
向量:多個元素組成的變量,并且是一排有序排列的元素。

x<-1:5 #給x賦值1到5的整數(shù)
x<-seq(5,1,by=0.5) #5到1之間每隔0.5取一個數(shù)
x<-rep(1:3,times=c(1,2,3))  #對1,2,3重復(fù),1重復(fù)1次,2重復(fù)2次,3重復(fù)3次

:給同一個變量多次賦值會覆蓋。

2. 從向量中提取元素
  • 根據(jù)值
x[1:4] #第1到4個元素
x[-(1:4)] #除了第1-4個元素
x[c(1,5)] #第1個和第5個元素
  • 根據(jù)位置
x[x==5] #等于5的元素
x[x<5] #提取值小于5的元素
x[x %in% c(1,2,5)] #取兩個向量的交集

二、數(shù)據(jù)框

1. 讀取本地數(shù)據(jù)

可用read.table()read.csv()兩個函數(shù)。兩者的區(qū)別是:

我們發(fā)現(xiàn)不管是逗號格式還是空格格式,都可以成為read.table()和read.csv()的數(shù)據(jù)源,那么區(qū)別就在于列數(shù)不對等這個需求了,對于read.table()嚴格要求所有列都對等,而read.csv()并不要求,后者會按最大列,或指定的列數(shù)填充,空串可指定相應(yīng)的字符或數(shù)字填充。
From:[R數(shù)據(jù)導(dǎo)入導(dǎo)出(一): read.table()和read.csv()的區(qū)別]
(https://www.cnblogs.com/ElfoDigger/p/10102120.html)

驗證了一下:
read.table()與read.csv()

兩者的具體參數(shù)如下:
read.table()與read.csv()參數(shù)
sep是分隔符,\t為制表符號(Tab),header指是否把第一行當作列名,當且僅當?shù)谝恍邪淖侄伪攘袛?shù)少一個時,header被設(shè)置為TRUE。
2. 設(shè)置行名和列名
colnames(X) #查看列名
rownames(X) #查看行名
colnames(X)[1]<-"col1" #修改某列名稱
read.csv(file = "....",sep = ",",row.names=1) #row.names=1指修改第一列為行名
3. 數(shù)據(jù)框的導(dǎo)出
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",
            eol = "\n", na = "NA", dec = ".", row.names = TRUE,
            col.names = TRUE, qmethod = c("escape", "double"),
            fileEncoding = "")

row.names:是否導(dǎo)出行序號,默認為TRUE,也就是導(dǎo)出行序號
col.names:是否導(dǎo)出列名,默認為TRUE,也就是導(dǎo)出列名
quote:字符串是否使用引號表示,默認為TRUE,也就是使用引號表示

4. 變量的保存與重新加載
save.image(file="   .RData") #保存當前所有變量
save(X,file="test.RData")  #保存其中一個變量到某個RData文件
load(" .RData")  #再次使用RData時的加載命令
5. 提取元素
X[x,y] #第x行第y列
X[x,] #第x行
X[,y] ,X[y] #第y列
X[a:b] #第a列到第b列
X[c(a,b)] #第a列和第b列
X$列名 #提取某列,只能提取一列
6. 直接使用數(shù)據(jù)框中的變量

用iris數(shù)據(jù)框的兩列做個散點圖,寫道腳本窗口,然后存到一個新的腳本里面:

Q:save(X,file="test.RData")這句代碼如果報錯object X not found,是為什么,應(yīng)該怎么解決?
A:報錯說的是X變量找不到,對象找不到說明沒有被定義/賦值,通常是忘了定義或者賦值時代碼寫錯了。
在這個例子里,可能是用read.csv()或read.table()函數(shù)打開的txt文件的時候,只是寫了read.csv(file = "huahua.txt")而沒有把這個結(jié)果賦值給X。解決辦法是X<-read.csv(file = "huahua.txt")。

今天的思維導(dǎo)圖:
Day5思維導(dǎo)圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容