R day1 -基本概念操作-2

萬地高樓平地起,掌握基本的代碼規(guī)律和邏輯思維非常重要

每個基本的代碼和函數(shù)不運行是200次以上岸啡,是談不上掌握的

基本開始運行代碼

rm(list=ls())
options(stringsAsFactors = F)

tips

Tab鍵匹配補全
head(b)取b的前6行,同樣有tail()取末6行

基本數(shù)據(jù)類型

R 有四種基本數(shù)據(jù)類型赫编,即數(shù)值型(numeric)巡蘸、復數(shù)型(complex)、邏輯型(logical)擂送、字符型(character)悦荒,因子(factor)。
numeric:就是數(shù)字【需要注意的是有的雖然看起來是數(shù)字嘹吨,但是被定義成了character或者factor,需要用as.numeric轉(zhuǎn)換】
character:用單引號或者雙引號包括起來的字符序列搬味,一般我們稱之為字符串。
logical:邏輯型變量蟀拷,即布爾值碰纬,表示“是”與“否”,“真”或“假”问芬。
邏輯型用 TRUE 表示真悦析,F(xiàn)ALSE 表示假。也可縮寫為 T或者 F此衅,
但需要注意的是,T 和 F不是 R 的保留字强戴,其含義可以被程序改變亭螟,因此最好是用 TRUE 和 FALSE,更加規(guī)范和安全骑歹。
R中的比較運算和邏輯運算都可以產(chǎn)生邏輯型數(shù)據(jù)预烙。比較運算包括 >,<道媚,>=扁掸,<=,==衰琐,!=(大于也糊,小于,大于等于羡宙,小于等于狸剃,等于,不等于)狗热。
邏輯運算包括 &钞馁,|,!(與匿刮、或僧凰、非)。

> 2>3
[1] FALSE
> a=seq(1,20)
> 8>a
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[17] FALSE FALSE FALSE FALSE

factor:應(yīng)該是最難理解的一個變量類型
在R語言中熟丸,因子(factor)可以表示的是一個符號训措、一個編號或者一個等級,即光羞,一個點绩鸣。例如,人的個數(shù)可以是1纱兑,2呀闻,3,4......那么因子就包括潜慎,1捡多,2,3铐炫,4.....
還有統(tǒng)計量的水平的時候用到的高垒手、中、低倒信,也是因子淫奔,因為他是一個點。
與之區(qū)別的向量堤结,是一個連續(xù)性的值唆迁,例如鸭丛,數(shù)值中有1,1.1唐责,1.2......可以作為數(shù)值來計算鳞溉,而因子則不可以。

sex<-c("M","F","M","M","F")
factor(sex)
sex.factor<-as.factor(sex)
#使用levels來取得因子中的水平
levels(sex.factor)
# [1] "F" "M"

不太好理解鼠哥,新手剛開始不太用的上熟菲,我現(xiàn)在也不太理解factor,應(yīng)該是比character多了半個維度的感覺

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

無論是數(shù)值型(numeric)、邏輯型(logical)朴恳、字符型(character)抄罕,因子(factor)變量都需要用容易來存儲,也就是數(shù)據(jù)結(jié)構(gòu)
R的對象由幾種基本數(shù)據(jù)類型構(gòu)成:
向量(vector) :一維空間
矩陣(matrix):二維空間于颖,只可以存儲數(shù)值變量呆贿,但是較少用到,
數(shù)據(jù)框(dataframe):二維空間森渐,可以存儲numeric做入,logical,character同衣,factor型變量竟块,在實際分析工作中用到的最多
數(shù)組(array):三維空間,但是極少用到耐齐,可以忽略
列表(list):三維空間浪秘,可以由多個vactor/matrix/dataframe組成

基本計算

R中可以直接進行基本計算
每一個英文單詞都是一個函數(shù)
基本所有的計算符號都可以在R中進行直接計算

6+6
6-6
6*6
6/6
6^2
log(6)
mean()
max()
min(x)

創(chuàng)建向量

c( ) 是我們常用來創(chuàng)建向量的函數(shù),c就是create埠况,也可以理解為combind

c("TP53","ERBB2","BRCA1")
c(2,3,4)
c(2:9)
seq(1,3)#默認為整數(shù)1
seq(1,3,by=0.5)
a=c(3,4,5,6,7,8),等價于a=3:8或者a=c(3:8)或者a=seq(3,8)
【R中沒有唯一的解決代碼方案秫逝,條條大路通羅馬,找出規(guī)律询枚,構(gòu)建個人的思維習慣才是王道】

rep就是replicate重復的意思

rep(1,3)# 【1重復3次】
rep(1:2,3) #【1和2,重復3次】
rep("TP53",3)# 【TP53, 重復3次】
rep(c("TP53","ERBB2","BRCA1"),each=3)#【每個向量重復3次】
rep(c("TP53","ERBB2","BRCA1"),3)#【 重復3次】

seq就是sequence序列

seq(1,3)#默認為整數(shù)1 返回值為1,2,3
seq(1,3,by=0.5) by是設(shè)定間隔值浙巫,返回值為1, 1.5, 2, 2.5, 3
sort(a)#排序
rev(a)#反向排序
table(a)###每個變量的counts
unique(a)####顯示變量唯一的數(shù)目

sort(a)#排序
sort(a,decreasing = TRUE) #降序排序
order()得到排列的小標用金蜀,返回的是每個變量在一維向量中的排序位置編號

每個函數(shù)都有很多啞變量可以微調(diào)整,參考help文檔說明的畴,或者TAB鍵聯(lián)想渊抄,每個調(diào)整參數(shù)之間以,分割

判斷向量類型

在預(yù)算中如果報錯丧裁,那就需要check元素類型是否不支持护桦,as.xxxx函數(shù)可以幫助把數(shù)據(jù)變成指定類型或狀況。
class()查看數(shù)據(jù)類型
str()查看數(shù)據(jù)結(jié)構(gòu)
dim()查看數(shù)據(jù)維度

is.data.frame()返回TRUE or FALSE邏輯向量
as.character()可以幫助把數(shù)據(jù)變成字符型數(shù)據(jù)(加雙引號“”的變量)

構(gòu)建matrix

a<-matrix(1:20,nrow = 4,ncol =5 )
a<-matrix(1:20, 4,5 )
a<-matrix(1:20, 4)
#三者等同

構(gòu)建data.frame

a<-data.frame(a=seq(1,5),b=seq(6,10))

data.frame的行和列數(shù)目必須一致煎娇,并且行名不能重復二庵,列名可以重復

提取數(shù)據(jù)

對于向量贪染,由于是一維結(jié)構(gòu),可以直接a[3],取向量中第3個數(shù)值
對于矩陣和數(shù)據(jù)框催享,由于是二維結(jié)構(gòu)杭隙,需要指定二位結(jié)構(gòu)
a[2,3]取數(shù)據(jù)框中的第2行、第三列的數(shù)值

data.frame默認是列為單位
可以對列進行直接操作
例如a是數(shù)據(jù)框變量
mean(a[,1])因妙、mean(a$1) 可以直接求a的第一列的均值
但是mean(a[1,])卻不可以直接求a的某一行的均值
需要先轉(zhuǎn)換后在計算
mean(as.numeric(a[1,]))
如果添加行痰憎,則將改變所有的列。如果重新賦值攀涵,可以將a改成數(shù)據(jù)框類型铣耘。如果沒有重新賦值,則不改變a的類型以故。依次類推蜗细,還有as.xxx等系列函數(shù)

對list進行操作

list是三維結(jié)構(gòu),所以需要進行三維定位
例如a是list變量
a[1]則得到列表中的第一個列表,進行一次降維
a[[1]] 得到第一元素据德,進行了二次降維
有時候兩種方法得到的結(jié)果看起來是一樣的鳄乏,可是使用class查看數(shù)據(jù)類型后發(fā)現(xiàn),其實[[]]之后已經(jīng)對數(shù)據(jù)進行了二次降級棘利,變成了元素橱野。

數(shù)據(jù)框取索引

通常我們想提取數(shù)據(jù)框中的指定行或者指定列
一般有兩種簡單提取思維
1)提取目標變量所在下標值(可以理解為坐標,例如第幾行)
舉例
a<-data.frame(sample=rep(c("tumor","sample"),4),age=seq(1:8))


要求1善玫,提取sample為tumor的數(shù)據(jù)

我可以找到sample列=tumor的行號

b<-a$sample=="tumor"

注意==是邏輯判斷符號水援,所以返回的是邏輯性變量


image.png

然后直接導入編輯變量

tumorsample<-a[b,]
image.png

也可以一步代碼

tumorsample<-a[a$sample=='tumor',]
a<-seq(1,100)
a>2 #返回的是邏輯變量
a[a>2]#返回的是向量變量,自動過濾掉FALSE變量

體會下不同

文件讀取和保存

read.table('文件名', header = T,sep = '\t' )
read.csv('文件名', header = T )
write.table(a,file = "aa")
write.csv (a,file = "aa")

重命名

重命名行名
rownames(b)<-
colname(b)<-

尚不完善茅郎,持續(xù)更新ing

感謝jimmy和他的生信菜鳥團家族

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜗元,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子系冗,更是在濱河造成了極大的恐慌奕扣,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掌敬,死亡現(xiàn)場離奇詭異惯豆,居然都是意外死亡,警方通過查閱死者的電腦和手機奔害,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門楷兽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人华临,你說我怎么就攤上這事芯杀。” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵揭厚,是天一觀的道長却特。 經(jīng)常有香客問我,道長棋弥,這世上最難降的妖魔是什么核偿? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮顽染,結(jié)果婚禮上漾岳,老公的妹妹穿的比我還像新娘。我一直安慰自己粉寞,他們只是感情好尼荆,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唧垦,像睡著了一般捅儒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上振亮,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天巧还,我揣著相機與錄音,去河邊找鬼坊秸。 笑死麸祷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的褒搔。 我是一名探鬼主播阶牍,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼星瘾!你這毒婦竟也來了走孽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤琳状,失蹤者是張志新(化名)和其女友劉穎磕瓷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體念逞,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡困食,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肮柜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡倒彰,死狀恐怖审洞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤芒澜,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布仰剿,位于F島的核電站,受9級特大地震影響痴晦,放射性物質(zhì)發(fā)生泄漏南吮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一誊酌、第九天 我趴在偏房一處隱蔽的房頂上張望部凑。 院中可真熱鬧,春花似錦碧浊、人聲如沸涂邀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽比勉。三九已至,卻和暖如春驹止,著一層夾襖步出監(jiān)牢的瞬間浩聋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工臊恋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衣洁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓捞镰,卻偏偏與公主長得像闸与,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子岸售,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容