1.設(shè)置工作路徑
setwd('/mnt/SSS/database/Day5')
2.讀取doudou
先看看長(zhǎng)什么樣子
> X<-read.table('doudou.txt')
> head(X)
V1
1 X1,X2
2 A,1
3 B,
4 C,
5 D,3
6 E,
#發(fā)現(xiàn)不是我想要的樣子遏暴,分隔是搞监,。
> X<-read.table('doudou.txt',sep =',',header=T)
> head(X)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
#這樣就對(duì)了,其實(shí)還可以read.csv
> X<-read.csv('doudou.txt')
> head(X)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
再來看一下huahua
#讀取huahua
> X<-read.table('huahua.txt',sep =' ',header=T)
> head(X)
X1.X2
1 A\t1
2 B\t
3 C\t
4 D\t3
5 E\t
兩列之間有空格剑按,所以sep里面加了空格,但是讀出來是這個(gè)樣子的。其實(shí)兩列之間不是空格,是tab分隔的厨内。因此sep=‘\t’
> X<-read.table('huahua.txt',sep ='\t',header=T)
> head(X)
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
#那能不能csv讀取呢
> X<-read.csv('huahua.txt')
> head(X)
X1.X2
1 A\t1
2 B\t
3 C\t
4 D\t3
5 E\t
csv和txt有什么區(qū)別
其實(shí)是兩者的分隔符不同,csv默認(rèn)‘,’雏胃,txt默認(rèn)‘’
CSV文件默認(rèn)以英文逗號(hào)做為列分隔符请毛,因此第一個(gè)文件csv不用設(shè)置sep參數(shù),第二個(gè)文件如果設(shè)置sep ='\t'也是可以讀取的瞭亮。
3.設(shè)置行名和列名
> X<-read.csv('doudou.txt') #
> class(X)
[1] "data.frame"
> colnames(X) #查看列名
[1] "X1" "X2"
> rownames(X) #查看行名
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"#有的公司返回?cái)?shù)據(jù)获印,左上角第一格為空,R會(huì)自動(dòng)補(bǔ)為x,用這個(gè)命令來修改
> head(X)
bioplanet X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
4.數(shù)據(jù)框的導(dǎo)出
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列為行名
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改為逗號(hào)街州,字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))
5.變量的保存與重新加載
這次沒有處理完的數(shù)據(jù)下次想接著用怎么辦?--學(xué)會(huì)保存和重新加載。保存的格式是RData玻孟。
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)秀寫法唆缴,而且這個(gè)命令還優(yōu)秀到不用寫括號(hào)的地步,并且支持Tab自動(dòng)補(bǔ)全哦黍翎,不過只能提取一列)
7.腳本保存
后綴就是.R
8.作業(yè)
另外請(qǐng)?jiān)谧鳂I(yè)中回答一個(gè)問題:save(X,file="test.RData")這句代碼如果報(bào)錯(cuò)object X not found面徽,是為什么,應(yīng)該怎么解決匣掸?
- X大小寫是否搞錯(cuò)
-
在環(huán)境里面找找是否有X
- 沒有的話是不是X沒有被賦值趟紊,檢查一下代碼