## install

Just started R language, R (R language version) and RStudio (r compilation platform)

R: R

RStudio: Rstudio

Detailed installation process

R language is an object-oriented programming language

R language is more like python. The statement format is very similar to py. Use {} instead of: (colon)

The processing object of R language is vector, which calls the database frequently

Single line notes: # notes

Multiline comments: R does not provide multiline comments

Alternative method: RStudio select the code to be commented and press Ctrl+Shift+C

## data type

The R language does not need to declare variables.

The R language allows the use of full and FALSE abbreviations T and F

typeof() #View data types #integer #integer #double #Decimal (floating point) (double by default) #character #String type #logical #Logical type mode() #View data structure #numeric #Numeric vector, numeric type, including integer, decimal and scientific counting #character #String vector #list #list #Matrix is also a kind of number vector #matrix #array

## vector

Vector type is the core of R language. All types can be called vectors. A number (scalar) is also a vector with one element

R language numeric variables do not specify double precision "double" types, and 1:6 generates integers

Allow element duplication

Vector addition and deletion need to be re assigned to the vector

length(), get the length of the vector

#Assignment: > x<-3 > x[1] [1] 3 #x is also a vector with only one element #vector a<-c(1,3,5,7,9) > a[2] [1] 3 #Subscripts start at 1, not 0 > a[2:4] [1] 3 5 7 #Subscripts from 2nd to 4th #Change the vector and re assign the value > a<-c(a[1:3],66,18) > a [1] 1 3 5 66 18 #mean() find vector mean mean(x) #hist() draw histogram

Vector operation:

Vector addition, subtraction, multiplication and division, and the corresponding elements are added directly (in the same format)

Single vector x and vector A are added, subtracted, multiplied and divided, and each element of vector A corresponds to x operation respectively

Index, subscript starts from 1

> li a [1,] 1 1 [2,] 3 1 [3,] 5 1 [4,] 66 1 [5,] 18 1 > li + c(1,2) a [1,] 2 3 [2,] 5 2 [3,] 6 3 [4,] 68 2 [5,] 19 3 #Equivalent to: > li + array(c(1,2),dim(li)) a [1,] 2 3 [2,] 5 2 [3,] 6 3 [4,] 68 2 [5,] 19 3 > b <- c(1:9) > b [1] 1 2 3 4 5 6 7 8 9 > b[-2:-4] [1] 1 5 6 7 8 9 #R language indexes are closed intervals

seq(), generate an equal difference vector: seq(from=num1, to=num2, by=num3)

seq(from=num1, to=num2, length=num3)

req(), repeat subvector: req(x,times)

all(),any(), returns TRUE or FALSE

### character string

String is actually a single element vector in character mode. Double quotation marks are used by default, and single quotation marks are also used for assignment.

The string in R language contains characters. It can also be said that a character is a string.

> st = 'my gril' > st [1] "my gril" > mode(st) #As long as one of the vectors is a string, the vector is a string vector > ch = c('a',o,9,'45') Error: object 'o' not found > ch = c('a','one',9,'45') > ch [1] "a" "one" "9" "45" > mode(ch) [1] "character" > length(ch) [1] 4

String concatenation and separator

### matrix

function matrix)Construction matrix(Two dimensional array)The construction form of the function is: matrix(data=NA，nrow=1，ncol=1，byrow=FALSE，dimnames=NULL) among data Is a vector data, nrol Is the number of rows of the matrix, ncol Is the number of columns of the matrix. When byrow=TRUE When, the data of the generated matrix is placed by row. By default, it is equivalent to byrow=FALSE，Data is placed in columns. dimname，Is the name of the array dimension. It is empty by default.

t(), matrix transpose

det(), find the determinant of a square matrix

dim(), number of rows and columns of the matrix

Two matrices are directly multiplied by A * B, and the corresponding elements are multiplied (the matrix must be similar)

**Vector inner product** A %*% B **Vector outer product (cross product)** A %o% B outer()It is a more powerful outer product operation function, outer(x,y)Compute vector two and y The outer product of, which is equivalent to A %o% B Function. outer()The general call format for is outer(A，B，fun="*") among A,B matrix(Or vector)，fun Is a function for outer product operation. The default value is multiplication. function outer()Useful when drawing 3D surfaces, it generates a x and y Grid of.

> m<-rbind(c(1,5),c(2,6)) > m [,1] [,2] [1,] 1 5 [2,] 2 6 > c = cbind(c(1,5),c(2,6)) > c [,1] [,2] [1,] 1 2 [2,] 5 6 #Matrix direct multiplication* > m * c [,1] [,2] [1,] 1 10 [2,] 10 36 #Matrix inner product c > m %*% c [,1] [,2] [1,] 26 32 [2,] 32 40 #Matrix outer product > m %o% c , , 1, 1 [,1] [,2] [1,] 1 5 [2,] 2 6 , , 2, 1 [,1] [,2] [1,] 5 25 [2,] 10 30 , , 1, 2 [,1] [,2] [1,] 2 10 [2,] 4 12 , , 2, 2 [,1] [,2] [1,] 6 30 [2,] 12 36 >mc<-m %o% c > dim(mc) [1] 2 2 2 2 #dim(mc) = c(dim(m), dim(c)) #Attention dimension

> mat <- matrix(1:9, nrow=3, dimnames=list(c('r1', 'r2', 'r3'), c('c1', 'c2', 'c3'))) > mat c1 c2 c3 r1 1 4 7 r2 2 5 8 r3 3 6 9 #You can add rows and columns through rbind and cbind > rbind(mat, c(12, 13, 14)) #Add a row after the original matrix mat > rbind(mat, c(12, 13, 14)) c1 c2 c3 r1 1 4 7 r2 2 5 8 r3 3 6 9 12 13 14

### list

Items in the list can be different data types

> li <- list(55,"34",c(3,5)) > li [[1]] [1] 55 [[2]] [1] "34" [[3]] [1] 3 5

### Data frame

The database in R language can be regarded as a two-dimensional list

Data frames are usually created by reading files or databases

In R language, data frame uses data Frame() function. The format is as follows:

data.frame(col1, col2, ..., row.name=NULL, check.rows = FALSE, check.names=TRUE, stringsAsFactors = default.stringsAsFactors()) Among them, row.name It is used to specify the name of each row (sample). There is no name by default. Each row is identified by a self increasing sequence starting from 1; check.rows It is used to check whether the name and quantity of rows are consistent. The default value is FALSE； check.names To check whether the name of the variable (column) is unique and consistent with the syntax. The default is TRUE； It is used to describe whether to automatically convert a character vector into a factor. The default conversion is used if it is not changed stringsAsFactors = FALSE To specify.

You can add a new row or column to the data frame variable using the rbind() function and the cbind() function.

> arr1 = array(1:12,c(3,4)) > arr1 [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 > mode(arr1) [1] "numeric" > data.frame(arr1) X1 X2 X3 X4 1 1 4 7 10 2 2 5 8 11 3 3 6 9 12 > mode(data.frame(arr1)) [1] "list" > df1<-df1[-2,] #Delete line 2 data > df1<-df1[,-c(1,3)] #Delete the data in columns and 3 #Add > lis<-list(name=c("Zhang San","Fourth sister","Wang Wu"," Xiao Qi"), sex=c("male", "female", "male", "male"), score=c(ninety, eighty-five, eighty-two, ninety-three)) > df2 <- data.frame(lis) > df2 name sex score 1 Zhang Sannan ninety 2 Fourth sister eighty-five 3 Wang Wunan eighty-two 4 Little seven man ninety-three > lis2 <- list(name="myna",sex="male",score=ninety-two) #Create a new list > df2<-rbind(df2, as.data.frame(lis2)) #Add list lis2 to df2 > df2 name sex score 1 Zhang Sannan 90 2 Fourth sister eighty-five 3 Wang Wunan eighty-two 4 Little seven man 93 5 Starling male ninety-two > lis3<-list(height=c(one hundred and seventy,one hundred and seventy-eight,one hundred and eighty-five,190,178,one hundred and seventy-five)) #Create a new list and save the height > lis3<-list(height=c(170,one hundred and sixty-eight,185,178,175)) #Create a new list and save the height > df2 name sex score height 1 Zhang Sannan 90 170 2 Fourth sister 85 168 3 Wang Wunan 82 185 4 Little seven man 93 178 5 Starling male 92 175

## function

#Vector summation add<-function(x){ #x: Formal parameter, without type sum<-0 #Initial value, assignment #for loop: for(i in x){ sum = sum + i #No sum+=i } return(sum) }