当我的程序能够读取外界的数据,并正确地处理并输出结果时,我才感到程序发挥了它专属的价值。而我的第一个能做到的程序,是在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[‘行名称 ‘,‘列名称’ ] 来访问数据,更加直观方便。