纯纯纯种学习R语言第一天

学习R语言第一天(“纯种”’笔记)

一、变量和常量

单纯的 a 在R语言中是个变量,它可以赋值成任何东西

a=1 #将1赋值给a,以后的 a 就是1了
a=2  #将2赋值给a,以后的 a 就是2了

'a' a加引号,a变成一个字符,是常量。
可以理解为加上引号就变成一个固定的数字,不加引号必须就赋值成其他东西

> 'a'    #此时a是一个字母   类比于1,2,3  等价于一个字符  
[1] "a"
> 'abcd'
[1] "abcd"

因此凡英文字母想作为常量出现必须加单引号,不加会报错(因为a没有赋值,系统不认为a是一个常量)

> a
Error: object 'a' not found
> abcd
Error: object 'abcd' not found

二、向量,矩阵,数组,数据框,列表

向量可以是 字符型(就是加引号的)、数值型、逻辑型

>a=1             #1个元素的向量
>a=c(1,2,3)   #3个元素的向量    c() 是一个创造向量的函数。

> a = c(10, 20, 30, 40, 50)
> a[2]
[1] 20

 #R 也可以方便的取出向量的一部分:
> a[1:4] # 取出第 1 到 4 项,包含第 1 和第 4 项
[1] 10 20 30 40
> a[c(1, 3, 5)] # 取出第 1, 3, 5 项
[1] 10 30 50
> a[c(-1, -5)] # 去掉第 1 和第 5 项
[1] 20 30 40

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,属于二位结构,一个二维矩阵,属于数组的范畴。详细教程参考https://www.runoob.com/r/r-matrix.html

数组(Array)数组是用于储存多个相同类型 数据的集合。数组可以跨越多个维度。
数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。详细教程参考https://www.runoob.com/r/r-array.html

#R 语言数组创建使用 array() 函数,该函数使用向量作为输入参数,可以使用 dim 设置数组维度。

array() 函数语法格式如下:

array(data = NA, dim = length(data), dimnames = NULL)
##参数说明:
data 向量,数组元素。
dim 数组的维度,默认是一维数组。
dimnames 维度的名称,必须是个列表,默认情况下是不设置名称的。
R 因子用于存储不同类别的数据类型,例如人的性别有男和女两个类别,年龄来分可以有未成年人和成年人。

R 语言创建因子使用 factor() 函数,向量作为输入参数。

factor() 函数语法格式:

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)

###参数说明:
x:向量。
levels:指定各水平值, 不指定时由x的不同值来求得。
labels:水平的标签, 不指定时用各水平值的对应字符串。
exclude:排除的字符。
ordered:逻辑值,用于指定水平是否有序。
nmax:水平的上限数量。

数据框(Data frame)可以理解成我们常说的"表格"。数据框是 R 语言的数据结构,是特殊的二维列表。数据框每一列都有一个唯一的列名,长度都是相等的,同一列的数据类型需要一致,不同列的数据类型可以不一样。详细教程参考https://www.runoob.com/r/r-data-frame.html

R 语言数据框使用 data.frame() 函数来创建,语法格式如下:

data.frame(…, row.names = NULL, check.rows = FALSE,
           check.names = TRUE, fix.empty.names = TRUE,
           stringsAsFactors = default.stringsAsFactors())
##参数说明
row.names: 行名,默认为 NULL,可以设置为单个数字、字符串或字符串和数字的向量。
check.rows: 检测行的名称和长度是否一致。
check.names: 检测数据框的变量名是否合法。
fix.empty.names: 设置未命名的参数是否自动设置名字。
fix.empty.names: 设置未命名的参数是否自动设置名字。
stringsAsFactors: 布尔值,字符是否转换为因子,factory-fresh 的默认值是 TRUE,可以通过设置选项(stringsAsFactors=FALSE)来修改。
print(table)   ##查看 table 数据
table = data.frame(
    姓名 = c("张三", "李四"),
    工号 = c("001","002"),
    月薪 = c(1000, 2000)   
)
print(table) # 查看 table 数据

#执行以上代码输出结果为:
姓名 工号 月薪
1 张三  001 1000
2 李四  002 2000

我们可以使用 cbind() 函数将多个向量合成一个数据框;

# 创建向量
a <- c("Google","Runoob","Taobao")
b <- c(222,111,123)
c <- c("www.google.com","www.runoob.com","www.taobao.com")

# 将向量组合成数据框
addresses <- cbind(a,b,c)

# 查看数据框
print(addresses)
#执行以上代码输出结果为:

     a         b          c           
[1,] "Google" "222" "www.google.com"
[2,] "Runoob" "111" "www.runoob.com"
[3,] "Taobao" "123" "www.taobao.com"

如果要对两个数据框进行合并可以使用 rbind() 函数;

table = data.frame(
    姓名 = c("张三", "李四","王五"),
    工号 = c("001","002","003"),
    月薪 = c(1000, 2000,3000)
)

newtable = data.frame(
    姓名 = c("小明", "小白"),
    工号 = c("101","102"),
    月薪 = c(5000, 7000)
)

result <- rbind(table,newtable)# 合并两个数据框
print(result)

姓名 工号 月薪
1 张三  001 1000
2 李四  002 2000
3 王五  003 3000
4 小明  101 5000
5 小白  102 7000

列表(list)是R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数。且元素多少可以不等。数据框每一列元素要相等。

R 语言创建列表使用 list() 函数。我们创建一个列表,包含字符串、向量和数字。详细教程参考https://www.runoob.com/r/r-list.html

list_data <- list("runoob", "google", c(11,22,33), 123, 51.23, 119.1)   #将list赋值给list_data

我们可以使用 names() 函数给列表的元素命名

三、函数(简单概括一下)

c() #函数生成。
function() #定义函数。
library() #使用包。
install.packages("要安装的包名") #安装包。
getwd() #获取当前工作目录。
setwd() #设置当前工作目录。
str(table) # 获取数据结构
paste() # 函数用于使用指定对分隔符来对字符串进行连接,默认对分隔符为空格。
nchar() #函数用于计数字符串或数字列表的长度。
print() #输出。
summary() #可以显示数据框的概要信息。
sink() #函数可以把控制台输出的文字直接输出到文件中去。
sum() #求和。
mean() #求平均值。
var() #方差。
sd() #标准差。
min() #最小值。
max () #最大值。
range() #取值范围(二维向量,最大值和最小值)。
lm() #函数进行线性回归。
rep() #产生重复出现的数字序列。
seq () #生成有间隙的等差数列。
as.numeric(b[1,]) #改变变量类型
.libPaths() #找安装路径
head() #看表头
dev.new() #新建画板
plot() #绘制点线图,条形图,散点图.
barplot( ) #绘制条形图
dotchart( ) #绘制点图
pie( ) #绘制饼图.
pair( ) #绘制散点图阵
boxplot( ) #绘制箱线图
hist( ) #绘制直方图
scatterplot3D( ) #绘制3D散点图.
低级绘图函数:
par()  #可以添加很多参数来修改图形
title( )  #添加标题
axis( )  #调整刻度
rug( )  #添加轴密度
grid( )  #添加网格线
abline( )  #添加直线
lines( )  #添加曲线
text( )  #添加标签
legend()  #添加图例
dev.off() #关闭图形设备
row.names行名
col.names列名
向量型(Vector)
双整型double
整型integer
字符型character
逻辑型logical
复数类型complex
原始类型raw
矩阵型(Matrix)和数组型(Array)
数据框架型(Data Frame)及列表型(List)
创建字符时,有字符有数值,创建的向量就全变成字符 #向量有优先级
NA 代表的是"缺失",NULL 代表的是"不存在"。
NA 缺失就像占位符,代表这里没有一个值,但位置存在。
NULL 代表的就是数据不存在。

字符串

> toupper("Runoob") # 转换为大写
[1] "RUNOOB"
> tolower("Runoob") # 转换为小写
[1] "runoob"
> nchar("中文", type="bytes") # 统计字节长度
[1] 4
> nchar("中文", type="char") # 总计字符数量
[1] 2
> substr("123456789", 1, 5) # 截取字符串,从 1 到 5
[1] "12345"
> substring("1234567890", 5) # 截取字符串,从 5 到结束
[1] "567890"
> as.numeric("12") # 将字符串转换为数字
[1] 12
> as.character(12.34) # 将数字转换为字符串
[1] "12.34"
> strsplit("2019;10;1", ";") # 分隔符拆分字符串
[[1]]
[1] "2019" "10"   "1"
> gsub("/", "-", "2019/10/1") # 替换字符串
[1] "2019-10-1"
> class(a) # 数值类型不相容的时候查变量类型是否不符合函数类型

四、循环

详细内容参考https://www.runoob.com/r/r-loop.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容