當我的程序能夠讀取外界的數據,並正確地處理並輸出結果時,我才感到程序發揮了它專屬的價值。而我的第一個能做到的程序,是在R上實現的。
(1)創建文件夾:
> dir.create('K:/Create_1');
> dir.create("K:/Create_1");
這條語句在K盤創建了一個名爲 Create_1 的文件夾。引號中包含所要創建的文件夾的地址。
使用單引號與雙引號均可。
(2)讀取數據:
My_data_1 <- read.table(file="clipboard",header = TRUE)
針對剪貼板上數據的讀取,使用read.table()
函數,header=TRUE 表示將數據的第一行識別爲列的名稱。
File_1 <- file.choose()
My_data_2 <- read.table(file = File_1,header = TRUE,sep = ",") #table 表示二維表格數據
通過file.choose()
函數,可以用鼠標選擇文件,從而不用手動輸入地址。sep=”,” 表示這是一個以逗號分隔的數據。
read.csv(file="路徑名") #也可使用專門讀取csv文件的函數
使用中發現:使用read.csv()
函數所讀取的數據,默認是按照首行是列名稱來讀取的。也就是說首行的數據被讀取爲列的名稱。 如果想將首行也作爲數據讀入,使用read.table()函數。
My_data_2=read.table(file = File_1,header = FALSE,sep = ',') #FLASE表示表格中沒有列名的數據,因而不用讀取列名
(3)二維數據的讀取:
對於一個二維數組,訪問某元素的方式是 Altr[x][y],表示第x行,第y列。
(4)從一個二維數組中取出多個數字(向量)
> Vector_a = My_data[c(1,2,3,4,5,6,7,8),1]
#My_data爲一個二維數組,Vector_a取My_data的第一列的前8個元素
#要取多個元素,行或列其中有一必爲向量
#更簡便的兩種方式
> Vector_a=My_data[seq(from=1,to=8,by=1),1]
#seq(form=1,to=8,by=1) 產生從1到8,等差2的等差數列。
> Vector_c=1:8 #也可以產生等效的數列
#若要選取某一列或某一行的全部元素,將行或列空出即可
Vector_d = My_data[x,y]
My_data[1,] #選取第一行的全部
有行或列名稱時:
My_data[,'Fri'] #可以用列名或行名來代替
My_data$Fri #或在$符號後寫上列名稱
使用names()
或colnames()
函數科查看所設定的列名稱,當然使用rownames()
可以查看行名稱。
如果數據有行與列名稱,則直接使用 My_data[‘行名稱 ‘,‘列名稱’ ] 來訪問數據,更加直觀方便。