R常用的基本函数

2018-12-06  本文已影响0人  脏脏包盛
基本数据处理
x = c(1, 2, 4, NA)
is.na(x)      # out :F F F T
x[!is.na(x)] # 输出非NA的项
sum(is.na(x)) # 是NA元素的个数
x[is.na(x)] = mean(x[!is.na(x)]) #把NA值赋值成有值的平均值
Dragon[7:19,] = Dragon[2,] # 制造重复数据,把7:19行的数据变成与2行相同
duplicated(Dragon) # 每一行与前面行相比较有相同的就为TRUE,
sum(duplicated(Dragon)) # 计算相同行的个数
Dragon[!duplicated(Dragon),] # 显示没有重复的Dragon数据
unique(Dragon) # 与上一行代码作用相同
创建序列
1:5   # 12345
5:1   # 54321
seq(from=0,to=20,by=5) # 0 5 10 15 20 
a = rep(0, 3) #a: 0 0 0 
rep(c(1, 2, a), 2) # 1200012000
随机采样
sample(1:300,10)          # 生成10 个在1-300中的不重复随机数
sum(duplicated(sample(1:300,100))) # 0 说明不重复,且生成个数不能超过300
sample(1:300,10,replace=T) # 生成10个1-300中的可重复随机数
sum(duplicated(sample(1:300,100,replace=T))) # 结果不为0,说明可重复,生成个数可超过300
基本计算
数据类型
数据类型转换

as.character()

c=as.character(c(1,2,3)) # "1" "2" "3"

as.numeric()

n=as.numeric(c("1","2","3")) # 1 2 3

as.data.frame()

df=as.data.frame(c(1,2,3))

as.matrix()

m=as.matrix(c(1,2,3))
数据合并

cbind 列向合并
rbind 行向合并

a=matrix(0,2,2)
a
b=matrix(1,2,2)
b
cbind(a,b)
rbind(a,b)
image.png
查看数据维度
a=c(1:5)
a
length(a) # 5
b = matrix(1, 2, 3)
b
dim(b) # 2 3
length(b) # 6
ncol(b) # 3
nrow(b) # 2
image.png
apply函数

对一个数组按维度计算
apply(X, MARGIN, FUNCTION, ...)

m = matrix(c(1:10, 11:20), nrow = 10, ncol = 2)
m
apply(m, 1, mean)
apply(m, 2, mean)
image.png
字符串操作
paste("2017","Dragon","Star",sep=" ")  #sep是连接要插入的字符
strsplit("2017 Dragon Star",split=" ")  #空格作为分割
nchar("2017 Dragon Star") # 16
substr("2017 Dragon Star",6,11) # Dragon

字符串替换和大小写转换

chartr("2017","2018", "2017 Dragon Star")       # 2018 Dragon Star
gsub ("2017","18", "2017 Dragon Star")          # 18 Dragon Star
tolower("2018 Dragon Star")                     # "2018 dragon star"
toupper("2018 Dragon Star")                    # "2018 DRAGON STAR"
casefold("2018 Dragon Star",upper = F)         # "2018 dragon star
casefold("2018 Dragon Star",upper = T)         # "2018 DRAGON STAR"
pattern识别

runif(x, min, max) 生成x个[min, max]均匀分布的随机数
which(x) x代表逻辑操作,返回这个操作为真的元素索引

x= floor(10*runif(10))
x
which(x<5)
x[which(x<5)]
image.png
流程控制语句
> score = 95
> if(score< 60)
+ {print("不合格")
+ }else if(score< 80)
+ {print("考试中等")
+ } else if(score<90)
+ {print("考试良好")
+ }else print("考试优秀")
[1] "考试优秀"
> for(i in 1:5){
+ print("hello world")
+ print(i)
+ }
> a = c(2:10)
> for (i in c(3, 8, 9, 3)){
+ print(a[i])
+ }
> a = 1
> while(a <= 5){
+ print(paste("Dsay", a, sep=""))
+ a= a+1
+ }
统计基本函数
数据规范化
x = rnorm(2000)
hist(x)
mean(x)
sd(x)
image.png
y=scale(x,T,F)
mean(y)
sd(y)
z=scale(x,T,T)
mean(z)
sd(z)
image.png
上一篇 下一篇

猜你喜欢

热点阅读