190424

R的基本操作

a.计算

R可以作为计算器使用,+-*/^分别代表加减乘除和乘方:

2 ^ 2 / 2 - (2 * 2 + 2)
## [1] -4

%%求余数,%/%求商:

5 %% 2
## [1] 1
5 %/% 2
## [1] 2

b.逻辑运算

==!=>>=<<=分别用来判断相等、不等、大于、大于等于、小于、小于等于的关系,符合逻辑返回TRUE,反之返回FALSE。对于部分字符(英文字母和汉字),似乎是字母顺序排在后面的更大;对于字符型数值,似乎与其数值型数值相等;另外,逻辑型数值中,TRUE等于1,而FALSE等于0:

TRUE == 1
## [1] TRUE
FALSE == 0
## [1] TRUE
'白马' != '马'
## [1] TRUE
1 == '1'
## [1] TRUE
'x' < 'y'
## [1] TRUE
'一' > '二'
## [1] TRUE

c.赋值

<-=都能用来赋值,但推荐用<-,其快捷键是Alt + -

R的基本概念

a.数据结构

R中的数据结构主要包括向量(vector)、因子(factor)、数据框(dataframe)、矩阵(matrix)和数组(array)几种。

向量包括原子向量(atomic vector)和列表(list),原子向量内的元素必须是同一种类型,而列表内的元素可以是不同的类型。

原子向量分为数值型(numeric)、字符型(character)和逻辑性(logical)三种,数值型向量又分为整数型(integer)和双精度型(double),原子向量可以使用c()函数创建,c是combine或concatenate的缩写:

v_int <- c(1L, 3L, 5L)
v_dbl <- c(1.1, 2.2, 3.3)
v_chr <- c('字', '符', '型')
v_lgl <- c(TRUE, FALSE, TRUE)

如果原子向量内部的数据类型不一致,则会发生强制转换(coercion),将所有数据转换成最灵活(flexible)的类型,类型的灵活性从高到低分别是字符型、双精度型、整数型和逻辑型:

(v_mix <- c(1L, 1.1, '字', TRUE))
## [1] "1"    "1.1"  "字"   "TRUE"

索引(index)可以通过元素的位置来访问元素,该位置从1开始(而不是0),并置于方括号内([]),负数表示去掉某元素,另外,也可以用逻辑值来访问元素:

v_mix[2:3]
## [1] "1.1" "字"
v_mix[-c(1, 4)]
## [1] "1.1" "字"
v_mix[c(FALSE, TRUE, TRUE, FALSE)]
## [1] "1.1" "字"

列表,list函数,列表的索引

因子,factor函数,levels参数;无序,有序;因子转数值

数据框,最重要,同一列数据类型必须相同,但不同列的数据类型可以不同;data.frame函数,stringAsFactors参数,数据框的索引

矩阵和数组,元素必须是同一类型

特殊值NULL,表示没有任何值,NA表示缺失值

数据探索

str函数、summary函数,mean函数、median函数、range函数、diff函数、IQR函数、quantile函数、var函数、sd函数、table函数、prob.table函数、round函数

b.函数

函数(function)用来执行特定的任务,函数内部一般都会有参数(argument)。个人理解,函数告诉我们要干什么,而参数告诉我们要针对谁,怎么干。如:

mean(c(1, NA, 3, 6), na.rm = TRUE)
## [1] 3.333333

函数mean告诉我们要求平均值,参数告诉我们要针对c(1, NA, 3, 6)这个向量求平均值,而na.rm = TRUE则告诉我们在求这个平均值的时候,要把缺失值NA去掉。

sum和TRUE、FALSE的结合

c.包

包是一系列数据和函数的合集。R自带30个包,可以直接使用;其他包需要安装,一般使用install.packages函数,然后使用library函数进行调用:

.libPaths()
## [1] "C:/Users/86185/Documents/R/win-library/3.5"
## [2] "C:/Program Files/R/R-3.5.3/library"
library()
search()
## [1] ".GlobalEnv"        "package:stats"     "package:graphics" 
## [4] "package:grDevices" "package:utils"     "package:datasets" 
## [7] "package:methods"   "Autoloads"         "package:base"
  • 常见问题、获取帮助及常用快捷键