R语言数据分析第一节


一、R语言数据分析是什么?

R 是一种免费的、开源的语言和操作环境,一开始是为了统计计算和画图,R语言现在可以在诸多领域进行应用,比如,数据挖掘、机器学习、社交网络、生物信息、金融数据分析,数据分析等。同时,R 提供了专业模块和实用工具,是从大数据中获取有用信息的工具。

二、R语言代码

1.基本数据类型

代码如下(示例):

num <-100;num
is.integer(num)#?
is.double(num)#?
typeof(num)
num2 <- 100L
typeof(num2)

is.logical(TRUE)
is.logical(T)
is.logical(5)#?
is.logical(0)#?

is.character("R program")

2.数据类型转换

代码如下(示例):

logi_vec <- T
typeof(logi_vec)
int_vec <- c (100L,200L)
typeof(int_vec)
double_vec <- c(10,20)
typeof(double_vec)
chr_vec <- c("伟大的""中国人民")
typeof(chr_vec)
typeof(c(logi_vec,int_vec)) #?验证逻辑型与整数型
typeof(c(int_vec,double_vec)) #?验证整数型与浮点型
typeof(c(double_vec,chr_vec)) #?验证浮点型与字符型
typeof(c(logi_vec,int_vec,double_vec,chr_vec)) #?验证兼容性最大的是字符型
1=='1'#?

3.运算符

代码如下(示例):

logi_vec1 <- c(T,F,T)
logi_vec2 <- c(F,T,T)
logi_vec1 & logi_vec2 #?
logi_vec1 && logi_vec2 #?

logi_vec1 <- c(T,F,T)#向量长度不同,短的循环补齐
logi_vec2 <- c(T,T,T,F)
logi_vec1 & logi_vec2 #?
logi_vec1 && logi_vec2 #?

logi_vec1 <- c(T,F,T) #验证:向量长度不同,短的循环补齐,长度为整数倍
logi_vec2 <- c(F,T,T,T,T,T)
logi_vec1 & logi_vec2 #?
logi_vec1 <- c(T,F,T,T,F,T)#验证:等价代码
logi_vec2 <- c(F,T,T,T,T,T)
logi_vec1 & logi_vec2 #?

4.逻辑运算

代码如下(示例):

logi_vec1 <- c(T,F,T)
logi_vec2 <- c(F,T,T)
logi_vec1 | logi_vec2 
logi_vec1 || logi_vec2 

5.创建向量

代码如下(示例):

1:5
1:-5
#1,3,5,7,9,创建等差数列
?seq
example (seq)
seq(1, 9,by =2)

#将某向量重复多次,创建向量.
vec <- 1:3
#1 2 3 1 2 3 1 2 3
example (rep)
rep(vec, each = 3)
#创建长度为o的向量
new.vec <- c()
length (new.vec)
new.vec
#向量运算-循环补齐
vec1 <- c (12)
vec2 <- c (10,20,30)
vec1 + vec2
vec2 <- c (10,20,30,40)
vec1 + vec2

#向量元素筛选,找出向量中的偶数
vec <- 1:10
new.vec <- vec[vec%%2== 0]
new.vec
vec%%2== 0
vec[c(F,T,F,T,F,T,F,T,F,T)]#通过逻辑型向量筛选向量元素
vec <- c (1:5,NA)
vec[vec%%2== 0]
subset (vec, vec%%2 == 0)#希望结果中不要出现NA

6.元素

代码如下(示例):

#访问元素

vec[1]
vec[0]
vec[2:3]
vec[2:5]
vec[c(1,3)] #访问不连续的怎么办?! 
vec[c(1,3,3)] #想重复访问

#添加元素
vec
vec <- C(vec[1:2],10,vec[31])

#删除元素

vec
vec <- vec[-3]
vec

7.实例

代码如下(示例):

判断某班级的学生的年龄是不是都是18岁以上?
stu <- sample (1:19,19, replace = F)
stu
stu >= 18
all(stu >= 20)
stu <- sample(c (18,19), 10, replace = T)
stu
all(stu >= 18)

#判断班级的学生的年龄是否存|18岁一下的?
stu <- sample(c (17,18,19), 10, replace = T)
stu
any (stu< 18)
stu<- sample(c (18,19),10, replace=T)
stu
any(stu< 18)