真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

r語言中c()函數(shù) R語言中c

R語言中的函數(shù)c中的c代表什么意思

c本身在這里應(yīng)該是“combine”的首字母,用于合并一系列數(shù)字從而形成向量/數(shù)列。

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)建站面向各種領(lǐng)域:成都報(bào)廢汽車回收成都網(wǎng)站設(shè)計(jì)、營銷型網(wǎng)站建設(shè)解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。


R語言數(shù)據(jù)結(jié)構(gòu)-向量

R語言數(shù)據(jù)結(jié)構(gòu)主要有以下四種:

向量:一串相同類型的數(shù)據(jù),不限于數(shù)字,字符,邏輯都可以,單獨(dú)拿出來的一列。什么是看做一個(gè)整體,一個(gè)向量里有若干個(gè)數(shù)據(jù),它們組成一個(gè)整體之后,可以擁有一個(gè)共同的名字。

以下主要講向量:

向量就是一串?dāng)?shù)據(jù),串聯(lián)在一起,組成一個(gè)整體,向量由元素組成。

很長的向量要么從數(shù)據(jù)框提取一列,或是有規(guī)律地生成,如連續(xù)的數(shù)據(jù):

paste0函數(shù)連接兩個(gè)向量,逗號 , 前后各有一個(gè)向量,如字符型和數(shù)值型向量。

paste0和paste的區(qū)別是:

paste0函數(shù) 把兩個(gè)向量的元素一一對應(yīng)進(jìn)行 無縫 連接,而 paste函數(shù) 把兩個(gè)向量的元素一一對應(yīng)進(jìn)行 空格 連接。paste函數(shù)有默認(rèn)值為空格,在空格處把空格去掉sep=""引號里把默認(rèn)的空格去掉,即什么沒有,就變成無縫連接,也可以用其它的符號連接sep="/",sep="_"等。

數(shù)值型、字符型、邏輯型:只要有字符型在,用c()生成向量為字符型。只有邏輯型和數(shù)值型,用c()生成向量為數(shù)值型。

c()函數(shù)生成向量時(shí),要求為生成同一種數(shù)據(jù)類型

注意的地方:

變量名 :c()為生成向量函數(shù),一般除字母c外,取單個(gè)字母或是單詞及縮寫,組成變量名的字母之間不要有空格,不能以數(shù)字為變量名或是以數(shù)字開頭,變量名不能是中文名,特殊符號等。

- 與c()函數(shù)之間沒有空格。

- 的快捷鍵輸入:

mac電腦: option 和 - ;

windows電腦: Alt 和 -

= 在任何情況下可替代 - ,但是 = 除了賦值,還有其它用法,比如函數(shù)里參數(shù)用法。 - 不能在任意情況下代替 = 。

強(qiáng)大的計(jì)算是體現(xiàn)在批量計(jì)算上,先把一些數(shù)據(jù)組成一個(gè)整體,

還是以向量x為單位進(jìn)行

其中五個(gè)重要函數(shù),一定要掌握。

能用函數(shù)代替的東西,堅(jiān)決不用手和眼睛去數(shù),比如length()統(tǒng)計(jì)向量元素個(gè)數(shù)。

結(jié)論:unique(x)與x[!duplicated(x)]函數(shù)相同

用identical()可以判斷兩個(gè)函數(shù)是否相同(數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)類型是否完全相同)

重點(diǎn)和難點(diǎn):

x==y :x和對應(yīng)位置的y相等嗎?(x和y里的元素,按順序一一對應(yīng)比較,講究位置對應(yīng),兩者里第一個(gè)元素相同就返TRUE,比較完兩個(gè)向量的第一位置上的元素,接著比較兩個(gè)向量第二個(gè)位置元素...到兩個(gè)向量最后)。

x和y不一樣長:理解“循環(huán)補(bǔ)齊”

結(jié)論: 如果x與y的向量元素長度不相等,以長度向量說了算,不是由在==前的向量決定。

x%in%y :x的每個(gè)元素在y中存在嗎?(x的元素挨個(gè)到y(tǒng)里和所有元素比較,在y里有的相同的返回TRUE,不講究位置,有就是TRUE,沒有為FALSE)。比如y向量加了一個(gè)元素2,返回還是9個(gè)邏輯值,返回的邏輯值是與x一一對應(yīng),和y沒有關(guān)系。

加減乘除,兩個(gè)向量直接可以進(jìn)行,等位運(yùn)算。前提是兩個(gè)向量必須等長,即元素個(gè)數(shù)一樣。

用paste0或是paste連接兩個(gè)向量,兩個(gè)向量的長度(元素個(gè)數(shù))不一致,循環(huán)補(bǔ)齊。

intersect(x,y),union(x,y),setdiff(x,y),setdiff(y,x),x與y順序顛倒(setdiff()與%in%有點(diǎn)兒相似)。

[] :取子集符號,將TRUE對應(yīng)的值挑選出來,F(xiàn)ALSE丟棄.

例:在13個(gè)數(shù)中,取出大于7的數(shù),首先把13個(gè)數(shù)值組成一個(gè)向量x,x7返回是邏輯值。

取值子集的對象放在中括號的外面,取子集的邏輯值向量放在中括號里面。

單獨(dú)運(yùn)行中括號里的向量,中括號里各種條件的返回結(jié)果有共同的規(guī)律,是一個(gè)與x等長的邏輯值向量。

下標(biāo):代表在哪個(gè)位置上。

符號 : []

按照邏輯值: 中括號里是與x等長的邏輯值向量

按照位置: 中括號里是由x的下標(biāo)組成的向量(支持反選)

思考:從13個(gè)彩色(綠,藍(lán),黃)球中,選出屬于藍(lán)色和綠色的:

使用x %in% y還是x ==y,用x %in% y,不是等位循環(huán)補(bǔ)齊運(yùn)算,%in%比較靈活,可以在很多場景中使用,如3選2,50選2,50選20等。

13個(gè)球的顏色賦值給向量x,藍(lán)色和綠色賦值給y。

x %in% y

x[x %in% y]

修改向量的元素,修改x里的第四個(gè)元素

注意:R于語言里所有的修改,都要賦值,沒有賦值就是沒有發(fā)生過

把隨機(jī)函數(shù)生成的數(shù)永遠(yuǎn)為一組數(shù)據(jù):用隨機(jī)函數(shù)生成向量,后運(yùn)行set.seed(10086)

x[match(y,x)] 和 x[order(x)]

排序,如何調(diào)整元素順序

結(jié)論:sort(x)等于x[order(x)],背誦下來

兩個(gè)向量沒有做關(guān)聯(lián)的操作,可以用order函數(shù)排序?qū)?yīng)信息

向量匹配排序-match,match函數(shù)是連線用的

x[match(y,x)] 的以后用法:以y作為模版,給x調(diào)順序。

match:誰在中括號外面,誰就在后面, x[match(y,x)] ,以y作為模板,用x作為原料去取子集,按照一個(gè)順序取子集,取出來的子集和y一樣。

需要背誦的兩個(gè)用法: x[match(y,x)] 和 x[order(x)]

練習(xí)題:在以下x和y表格里如何將y的列名一對一替換為ID

切換Rproj的時(shí)候出現(xiàn)彈窗:是否將工作空間保存到 .Rdata ?

答案是:不保存,之前單獨(dú)保存好腳本和圖片,這里出現(xiàn)的提示是否臨時(shí)保存,不需要保存。

.Rdata ?是什么:

以 . 開頭的文件,通常用作配置,系統(tǒng)默認(rèn)隱藏這類文件

.Rdata 是保存工作空間的默認(rèn)文件

.History 是保存歷史命令的默認(rèn)文件

如果打開Rstudio特別慢,可能是因?yàn)?.Rdata 保存了很大的變量,可以找到 .Rdata 文件將其刪除。

在Rproj右下角打開腳本時(shí),編輯器腳本的中文注釋出現(xiàn)亂碼,解決如下:

以上內(nèi)容是聽 生信技能樹 小潔老師的 R語言線上課 ,根據(jù)自己的理解記錄下來,小潔老師授課非常細(xì)心,對不同水平的同學(xué)都照顧到,并且補(bǔ)充很多技巧以及注意事項(xiàng)。

之前學(xué)習(xí)過R語言,那時(shí)對向量認(rèn)識不夠深,也沒有重視,數(shù)據(jù)框的列單獨(dú)拿出來就是一個(gè)向量。認(rèn)真聽小潔老師的講解以及最近跑幾個(gè)GEO數(shù)據(jù)集發(fā)現(xiàn)學(xué)會(huì)對向量的熟練操作以及熟練一些重要的函數(shù),在實(shí)戰(zhàn)過程中會(huì)順利些。

R語言常用函數(shù)

1. 判斷存在:一個(gè)元素是不是在向量中用 a%in%b

a="TT"

b=c("AA","AT","TT")

a %in% b

[1] TRUE

2. 判斷某一元素這向量中的索引(第幾個(gè)位置): index.TT=which(b==”TT”)

index.TT=which(b=="TT")#index.TT是想知道的索引號,which是判斷函數(shù),b是想知道的元素所在的向量

index.TT

[1] 3

3. 相當(dāng)于 python 中的字典, names 函數(shù)

b

[1] "AA" "AT" "TT"

names(b)=c("geno1","geno2","geno3")#geno mean genotype

names(b)

[1] "geno1" "geno2" "geno3"

names(b)[1]

[1] "geno1"

names(b)[1]="test"

names(b)

[1] "test""geno2" "geno3"

names(b)=NULL

b

[1] "AA" "AT"

b["geno2"]

"AT"

pop_name=c(“CEU”,"YRI")

names(pop_name)=c(1,2)

names(pop_name[1])=1

4. 去除某一元素: b[-index.nu]

#想去除元素”TT”,如果你不知道是第幾個(gè)索引,可以先判斷索引,再刪除。

b=c("AA","AT","TT")

names(b)=c("geno1","geno2","geno3")

index.TT=which(b=="TT")

b=b[-index.TT]

b

geno1 geno2

"AA""AT"

5. 相當(dāng)于 Python 中的 set() 函數(shù) 和 count() 函數(shù): unique() , table()

b=c("TT","AT","AT","TT","AA")

unique(b)#即相當(dāng)于去除所有的重復(fù),只保留一個(gè)

[1] "TT" "AT" "AA"

table(b)#以元素為name,統(tǒng)計(jì)各元素的個(gè)數(shù)

b

AA AT TT

122

6. 字符串的分割: strsplit()

test="AA"

strsplit(test)

錯(cuò)誤于strsplit(test) :缺少參數(shù)"split",也沒有缺省值

strsplit(test,split='')

[[1]]

[1] "A" "A"

test=strsplit(test,split='')[[1]]

test

[1] "A" "A"

7. 文本文檔的寫入: write.table()

write.table( res.matrix,file=new.file,sep='\t',quote=F,row.names=F,col.names=F,append=T)#quote=F去掉引號后寫入,row.names=F去掉行的名字寫入,否則會(huì)把名字寫進(jìn)去

##寫入數(shù)據(jù)時(shí)候最好把數(shù)據(jù)存儲(chǔ)成一個(gè)matrix然后直接寫。要是每行每行寫的話要注意數(shù)據(jù)的格式了。先建立一個(gè)空的matrix,見8,然后通過rbind或者cbind疊加上去。

方法一:

a=c()

b=c(“AA”,”TT”,”CC”)

for (i in 1:3){

a=c(a,b)

}

write.table(a,file=”test.txt”)#你會(huì)發(fā)現(xiàn)結(jié)果是

AA

TT

CC

….

##而且還有行和列的名字,因?yàn)闆]有設(shè)置參數(shù)。因?yàn)閷τ赾向量來說,寫的話默認(rèn)是豎著寫的,每個(gè)元素占一行。所以比較方便的就是rbind

方法二:

a=c()

b=c(“AA”,”TT”,”CC”)

for (i in 1:3){

a=rbind(a,b)

}

write.table(a,file=”test.txt”,quote=F,row.names=F,col.names=F)#你會(huì)發(fā)現(xiàn)結(jié)果是

AA TT CC

AA TT CC

AA TT CC

##原因是rbind把最總結(jié)果當(dāng)做矩陣了。對于R數(shù)據(jù)的寫入最好能生成最后的矩陣再寫入。但是西面的梅一行寫一次和方法二的效果是想通的,但是要用到append參數(shù)。

a=c()

b=c(“AA”,”TT”,”CC”)

for (i in 1:3){

a=rbind(a,b)

write.table(a,file=”test.txt”,quote=F,row.names=F,col.names=F,append=T)

}

8. 建立一個(gè)空的 matrix :

res.matrix - matrix( ,nrow=0,ncol=6 )##這樣就建立了一個(gè)0行6列的空matrix了。

9. 如何將 R 運(yùn)行結(jié)果輸出到文件

x=read.table("F:/my/work/chengxu/PValue/pc2jieguo/pc2302.txt")

z=t(x)

ks.test(y,z)

Two-sample Kolmogorov-Smirnov test

data:y and z

D = 0.207, p-value 2.2e-16

alternative hypothesis: two-sided

如上面運(yùn)行結(jié)果,我想將p-value 2.2e-16自動(dòng)保存到一個(gè)文件中,如何用R程序?qū)崿F(xiàn),謝謝!

sink("output.txt")

print(ks.test(y,z)$p.value)

sink()

10 降序排列:

a=c(1,1.2,0.1,4,5,-0.1)

a=sort(a,decreasing=T)

a

[1]5.04.01.21.00.1 -0.1

11. 取前1%的數(shù)

a=c(1:10,4:20,1:100,1:1000)

a=sort(a,decreasing=T)#先降序

sig=a[round(length(a)*0.01)]

sig

[1] 990

12.在shell中直接執(zhí)行R腳本

R CMD BATCH --argstest.R

13. R中高級作圖的方法

14:設(shè)置字體類型:

par(family='Times New Roman')

15:控制圖形四周的空白大小

par(mfrow=c(3,1),mar=c(0,0,0,0))

其中mar是四周的間距,分別為x,y上下的距離

16控制作圖區(qū)域的大小layout

layout(c(1,2,3),height=c(1,1,0.5))

分成豎著三份, 其中三份比列依次為(高度依次為2:2:1)

17保留兩位小數(shù)

round(0.123,digits=2)

18 在原有圖的基礎(chǔ)上畫圖:

par(fig=c(0.1,0.5,0.43,0.65), new=TRUE)

19 只顯示y軸

plot(1:10,1:10,axes=F)

axis(2,at.....)

20 調(diào)節(jié)刻度方向 las

plot(1:10,1:10,las=1)

21 屏幕分割

layout(matrix(1:16,4,4))###豎著plot

par(mfrow=c(4,4))##橫著plot

22.邏輯表示或者

xor為異或,兩值不等為真,兩值相等為假。例:xor(0, 1)

23. 從向量中隨機(jī)取幾個(gè)數(shù)sample

sample(rep(1:1000),10)

23 字符串轉(zhuǎn)換成小數(shù)浮點(diǎn)型

as.numeric("0.123")

24. 讀取不規(guī)范的文本

f=readLines(afile,n=1)#n表示讀幾行

f=strsplit(f,'\t')##分割

f[1][[1]]##第一行

f[1][[1]][1]##第一行 第一個(gè)字符串

25. write 寫入文件

write(afile, "a\tb\t",append=T) #沿著每行一次 寫入

26. 不需要循環(huán),這直接對matrix沒行或者每列進(jìn)行篩選操作apply()

apply(data,col2 or row1, max0)

27.保留2位小數(shù)

a=2.300

a=as.numeric(sprintf(“%.3f”,a))

28。調(diào)出假設(shè)檢驗(yàn)的p value

t.test(data1,data2)$p.value


分享標(biāo)題:r語言中c()函數(shù) R語言中c
轉(zhuǎn)載源于:http://weahome.cn/article/hjopjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部