學(xué)習(xí)小組Day5筆記--鏡筒

數(shù)據(jù)結(jié)構(gòu)

一、幾個(gè)小技巧

  • R的賦值符號(hào):<-
  • Console 控制臺(tái)輸入命令:相當(dāng)于linux命令行
  • R的代碼都是帶括號(hào)的
  • 括號(hào)必須是英文
  • 顯示工作路徑 getwd()
  • 向量是由元素組成的(元素可以是數(shù)字或者字符串)
  • 表格在R語(yǔ)言中改名叫數(shù)據(jù)框
  • ?函數(shù)名調(diào)出對(duì)應(yīng)的幫助文檔(如?read.table)
  • 數(shù)據(jù)類(lèi)型(向量(vector)矩陣(Matrix)數(shù)組(Array)數(shù)據(jù)框(Data frame)List)

二、向量

  1. 元素:數(shù)字或者字符串
  2. 標(biāo)量:一個(gè)元素組成的變量
  3. 向量:多個(gè)元素組成的變量 ,是一排有序排列的元素
    標(biāo)量、向量與元素
常見(jiàn)賦值方法

x <- c(1,2,3) #常用的向量寫(xiě)法,意為將x定義為由元素1,2,3組成的向量。
x<- 1:10 #從1-10之間所有的整數(shù)
x<- seq(1,10,by = 0.5) #1-10之間每隔0.5取一個(gè)數(shù)(注意是逗號(hào)不是分號(hào))
x<- rep(1:3,times=2) #1-3 重復(fù)2次

查看變量
圖cr生信星球

圖cr生信星球
從向量中提取元素的方法

1. 按位置

> x
[1] 1 2 3 1 2 3
> x[-4]#排除法,除了第4個(gè)元素之外剩余的元素
[1] 1 2 3 2 3
> x[2:4]#第2到4個(gè)元素
[1] 2 3 1
> x[-(2:4)]#除了第2-4個(gè)元素
[1] 1 2 3
> x[c(1,5)] #第1個(gè)和第5個(gè)元素
[1] 1 2

2. 按數(shù)值

> x[x==3]#等于3的元素
[1] 3 3
> x[x>1]
[1] 2 3 2 3
> x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
[1] 1 2 1 2

三.數(shù)據(jù)框

示例數(shù)據(jù)1

示例數(shù)據(jù)2

1. 輸入y<-read.csv('doudou.txt')
結(jié)果

2. 輸入z<-read.table('huahua.txt',sep="\t",header=T)
結(jié)果

  • 此處sep表示分隔符,\t為空格的意思,即空格為分隔符
  • header為第一行是否用作列名稱(chēng)。true則excel第一行用于列名稱(chēng),具體數(shù)據(jù)從第二行開(kāi)始 false則第一行即為具體數(shù)據(jù)。此處首行X1、X2為列名稱(chēng)。

3. 設(shè)置行名和列名

> X<-read.csv('doudou.txt') 
> colnames(X) #查看列名
[1] "X1" "X2"
> rownames(X) #查看行名,默認(rèn)值的行名就是行號(hào),1.2.3.4...
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"#有的公司返回?cái)?shù)據(jù),左上角第一格為空,R會(huì)自動(dòng)補(bǔ)為x,用這個(gè)命令來(lái)修改
> X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names = 1)#最后row.names的意思是修改第一列為行名

輸入最后一行代碼后X顯示

4. 數(shù)據(jù)框的導(dǎo)出

write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改為逗號(hào),字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào)) 

5. 變量的保存與重新加載

save.image(file="bioinfoplanet.RData")#保存當(dāng)前所有變量(保存鏡像文件)
save(X,file="test.RData")#保存其中一個(gè)變量
load("test.RData")#再次使用RData時(shí)的加載命令

6. 提取元素

- X[x,y]#第x行第y列
- X[x,]#第x行
- X[,y]#第y列
- X[y] #也是第y列
- X[a:b]#第a列到第b列
- X[c(a,b)]#第a列和第b列
- X$列名#也可以提取列(優(yōu)秀寫(xiě)法,而且這個(gè)命令還優(yōu)秀到不用寫(xiě)括號(hào)的地步,并且支持Tab自動(dòng)補(bǔ)全哦,不過(guò)只能提取一列)
示例數(shù)據(jù)框
> z[1,2]
[1] 1
> z[1,1]
[1] "A"
> z[3,1]
[1] "C"
> z[1,]
  X1 X2
1  A  1
> z[2,]
  X1 X2
2  B NA
> z[,2]
[1]  1 NA NA  3 NA
> z[,1]
[1] "A" "B" "C" "D" "E"
> z[1]
  X1
1  A
2  B
3  C
4  D
5  E
> z[1:2]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> z[c(1,2)]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> z$X1
[1] "A" "B" "C" "D" "E"

其他知識(shí)點(diǎn)

  1. 提取某兩列為散點(diǎn)圖
options(stringsAsFactors = T)
a <-data.frame(case=paste0("S",1:9),values=runif(9))
plot(a$case,a$values)

若為了避免plot函數(shù)中變量名出現(xiàn)兩次,可采用如下方法

attach(a)
plot(case,values)

with(a,{
 plot(case,values)
x<<-summary(values)   #求和并賦值給x,<<的意思是作為全局變量,也就是出了大括號(hào)仍有效。
})
x #運(yùn)行完后打印x
  1. 腳本的復(fù)制與保存(省略)
    課后問(wèn)題:save(X,file="test.RData")這句代碼如果報(bào)錯(cuò)object X not found,是為什么,應(yīng)該怎么解決?
    答:證明X對(duì)象不存在,可能是變量名寫(xiě)錯(cuò),之前并未對(duì)X變量進(jìn)行賦值
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 復(fù)習(xí)Day4內(nèi)容,二次學(xué)習(xí)Day5內(nèi)容 R-project管理多個(gè)R工作目錄 設(shè)置工作目錄:setwd() 查看工...
    一萬(wàn)萬(wàn)萬(wàn)萬(wàn)閱讀 377評(píng)論 0 0
  • Day5-數(shù)據(jù)結(jié)構(gòu)筆記。 新手起步: 抄筆記: 獲取示例數(shù)據(jù):在公眾號(hào)--生信星球 后臺(tái)回復(fù):“數(shù)據(jù)類(lèi)型”即可獲得...
    Happytinger閱讀 415評(píng)論 0 0
  • 學(xué)習(xí)前需掌握 (1)R的賦值符號(hào)不是等號(hào),而是<-(2)在Console 控制臺(tái)輸入命令,相當(dāng)于Linux的命令行...
    DoubleT_2aac閱讀 445評(píng)論 0 0
  • R語(yǔ)言學(xué)習(xí)筆記 R語(yǔ)言常識(shí)部分 R語(yǔ)句由函數(shù)和賦值構(gòu)成。 R使用 <-,而不是傳統(tǒng)的 = 作為賦值符號(hào)。 尋求幫助...
    慧美huimei閱讀 290評(píng)論 0 3
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,818評(píng)論 16 22

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