R语言学习的第一课,理解简单的数据(向量)

# R 会话中创建的所有对象可以永久地保存在一个文件中以便于以后的 R 会话调
# 用。在每一次 R 会话结束的时候,你可以保存当前所有可用的对象。如果你想这样
# 做,这些对象将会写入当前目录下一个叫.RData 10 的文件中,并且所有在这次会话中
# 用过的命令行都会被保存在一个叫.Rhistory 的文件中。

# 如果采用 R 做分析,你最好用相对独立的工作目录

#向量和复制
# 赋值号<-的使用,也可以使用=, 函数assign()
x <- c(10.4,6.5,3.1,6.4,21.7) # c() 返回一个首尾相连的向量
# 等价于:
assign("y",c(10.4,6.5,3.1,6.4,21.7))
c(10.4,6.5,3.1,6.4,21.7) -> x
1/x #生成一个副本,不会直接修改原来x的值
y <- c(x,0,x) # 11个元素的值,copy赋值

# 向量运算,对逐个元素的运算

# 将产生一个新的长度为11的向量v。它由2*x 重复2.2次,y 重复一次,
# 1 重复11次得到的向量相加而成,因为c()生成的是首尾相连的向量,R 的特性
v = 2*x + y + 1 

# values 相等
mean(x)
sum(x)/length(x)

var(x)
sum((x-mean(x))^2)/(length(x)-1) #一般使用n-1

sort(x) #默认升序排序
sort(x,decreasing=TRUE) #降序排列

# max, min, pmax, pmin
a1 <- c(1,7,2,4)
a2 <- c(5,6,3,8)
# 得到所有数的最值
max(a1,a2);min(a1,a2)

# 比较向量的每一个数给出要求的最值
pmax(a1,a2)
pmin(a1,a2)

# R 环境内部的计算是以双精度的实数或者
# 双精度的复数(在输入数据是复数的情况下)实现的。
# 处理复数的时候要明确给出复数部分(虚数部分i)
sqrt(-17+0i)

# 生成正则序列
1:5
# 1 2 3 4 5
5:1
# 5 4 3 2 1
2 * 1:5
# 2 4 6 8 10

# seq(from,to,by,length) 开始 结束 步长 个数
seq(1,5,0.5)
s2 <- seq(1,3,0.3)
s3 <- seq(4,3,-0.3)

# rep(x,times) 重复复制对象xtimes次
rep(3,4)


# ------- 逻辑向量 ----------
# FALSE TRUE
tmp <- x > 5
# == != & | !
# 相等 不等 与 或 非

# 缺失值 NA
z <- c(1:3,NA)
is.na(z) # 判断每一个值是不是缺失值

# 注意此处的不同
x = NA
x == NA # [out] NA
is.na(x) #[out] TRUE


# 数值计算会产生第二种“缺损”值,也称为非数值(Not a Number)NaN
0 / 0
Inf - Inf
# 对于NA 和NaN 用is.na(xx) 检验都是 TRUE。
# 为了区分它们,is.nan(xx)就只对是NaN 元素显示TRUE。
a <- c("a","b",NA)
is.na(a)
is.nan(a)

# --------字符向量和c语言风格相似--------
# 两种初始化的格式
s = "sasss"
s1 = c("saaa")

# 交替循环连接生成字符串
label1 <- paste(c("x","y"),1:10,sep="")
# [1] "x1"  "y2"  "x3"  "y4"  "x5"  "y6"  "x7"  "y8"  "x9"  "y10"
label2 <- paste(c("x","y","z"),1:10,sep="")
# [1] "x1"  "y2"  "z3"  "x4"  "y5"  "z6"  "x7"  "y8"  "z9"  "x10"

x = c(1:10,NA)

#逻辑向量
y <- x[!is.na(x)] #得到所有是TRUE的下表的值

#正整数向量
y <- x[1:10] # 1-10,R语言中下标从1开始

#负整数向量
y <- x[-(1:5)] # 将x 除开始五个元素外的其他元素都赋给y
# 6  7  8  9 10

#字符串向量,通过名字来取值,类似于字典类型
fruit <- c(5,10,2,1)
names(fruit) <- c("orange","banana","apple","peach")
lunch <- fruit[c("apple","orange")]

# 集体修改值,有没有一种numpy和pandas的感觉
a = c(1,NA,2,NA)
a[is.na(a)] <- 0
a[a > 0] <- -a[a > 0]

R的不同类型的对象
矩阵(matrix)
因子(factor) 为处理分类数据提供一种有效的方法
列表(list) 范化的向量
数据框(data frame) 类似有pandas中的DataFrame
函数(function) 保存在工作目录中的R的对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值