昨天剛好把“R中的數(shù)據(jù)、邏輯和函數(shù)”這塊兒空出來(lái)了,今天填進(jìn)去?
今日份思維導(dǎo)圖:
day5 R語(yǔ)言-數(shù)據(jù)結(jié)構(gòu)
實(shí)操過(guò)程
-
給向量賦值&從向量中提取元素
x<- c(1,2,3) #常用的向量寫(xiě)法,意為將x定義為由元素1,2,3組成的向量。 y<- 1:10 #從1-10之間所有的整數(shù) z<- seq(1,10,by = 0.5) #1-10之間每隔0.5取一個(gè)數(shù)(注意是逗號(hào)不是分號(hào)) r<- rep(1:3,times=2)#1-3 重復(fù)2次 ls() [1] "myPaths" "r" "x" "y" "z" x [1] 1 2 3 y [1] 1 2 3 4 5 6 7 8 9 10 z [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 [17] 9.0 9.5 10.0 r [1] 1 2 3 1 2 3 x[-1] #排除法,除了第1個(gè)元素之外剩余的元素 [1] 2 3 y[2:4] #第2到4個(gè)元素 [1] 2 3 4 r[-(1:3)] #除了第1-3個(gè)元素 [1] 1 2 3 z[c(1,10)] #第1個(gè)和第10個(gè)元素 [1] 1.0 5.5 x[x %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素 [1] 1 2 z[z<2] [1] 1.0 1.5 y[y==1] [1] 1 -
數(shù)據(jù)框
read.csv,用于讀取“comma separated value”文件。它以 DataFrame 的形式導(dǎo)入數(shù)據(jù)。相關(guān)參數(shù):
file:包含要導(dǎo)入到 R 中的數(shù)據(jù)的文件的路徑。
header:邏輯值。如果為 TRUE,則 read.csv() 假定您的文件具有標(biāo)題行,因此第 1 行是每列的名稱(chēng)。如果不是這種情況,您可以添加參數(shù) header = FALSE。
sep:字段分隔符
dec:文件中用于小數(shù)點(diǎn)的字符。
read.table,用于從文本文件中讀取數(shù)據(jù)。它以表格的形式返回?cái)?shù)據(jù)。相關(guān)參數(shù) :
header:表示文件是否包含標(biāo)題行
sep:表示文件中使用的分隔符值
#數(shù)據(jù)框部分的操作,先在工作目錄下新建qingnan.txt,并輸入示例數(shù)據(jù)
X<-read.csv('qingnan.txt')
colnames(X)#查看列名
[1] "X1" "X2"
rownames(X) #查看行名
[1] "1" "2" "3" "4" "5"
read.table(file = "huahua.txt",sep = "\t",header =T) #從文本文件中讀取數(shù)據(jù),以表格的形式返回?cái)?shù)據(jù)。
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改為逗號(hào),字符串不加雙引號(hào)(默認(rèn)格式帶由雙引號(hào))
# 導(dǎo)出數(shù)據(jù)框之后可以在工作目錄下找到一個(gè)新的yu.txt,
# 提取數(shù)據(jù)框中的元素(與提取向量中的元素大同小異,這里只記錄了一下花花@生信星球總結(jié)的一些常用提取,沒(méi)有實(shí)操。)
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ò)只能提取一列——補(bǔ)充:列名里帶上循環(huán)是不是就可以提取多列了??)
- 直接使用數(shù)據(jù)框中的變量:指定數(shù)據(jù)框,制定行、列,可以直接畫(huà)散點(diǎn)圖
plot(iris$Sepal.Length,iris$Sepal.Width)
-
問(wèn)題:
save(X,file="test.RData")這句代碼如果報(bào)錯(cuò)object X not found,是為什么,應(yīng)該怎么解決?
答:object X not found應(yīng)該是因?yàn)?X 沒(méi)有被定義/賦值,可能是之前定義過(guò)后刪掉了,也有可能是大小寫(xiě)搞錯(cuò)了之類(lèi)的,找到自己以為是 X 的那個(gè)向量或者數(shù)據(jù)框,檢查一下它的名稱(chēng)、賦值,改好了再保存就行。補(bǔ)充,關(guān)于 save 函數(shù)的說(shuō)明:
如圖,save函數(shù)可以將R對(duì)象的外部表示法寫(xiě)到指定的文件中,之后,可以通過(guò)load或attach(或data)從文件中讀取這些對(duì)象。相關(guān)參數(shù):- list: 一個(gè)包含要保存的對(duì)象名稱(chēng)的字符向量。
- file: 連接或保存數(shù)據(jù)的文件的名稱(chēng)。必須是保存的文件名。
- ascii: ASCII碼,默認(rèn)FALSE。
- envir: 尋找要保存的對(duì)象的環(huán)境。
- compress: 邏輯或字符串指定是否保存到指定文件是使用壓縮。TRUE對(duì)應(yīng)于gzip壓縮,而字符串“gzip”、“bzip2”或“xz”指定壓縮的類(lèi)型。當(dāng)文件是連接和工作空間格式版本時(shí)忽略
- save.image 只是“保存我當(dāng)前工作空間”的捷徑。
(作者:謝俊飛,鏈接:http://www.itdecent.cn/p/6d701d789ab2)
save 函數(shù)




