R的小技巧:
R中的各种未被整理的小程序
画图:
plot不出现图形
dev.new()
读取图片
library(jpeg) # 加载包
img<-readJPEG("getdata-jeff.jpg",native=TRUE)
# 画图
plot(x, y, main="", xlab=" ", ylab="")
png(file = "nls.png")#输出图片
分屏画图
split.screen(c(1,2)) #分屏幕为左右两边
screen(1) #屏幕1预备输出
plot(X2,Y,type="p",xlab="X2",ylab="Y",main="Plotting of X2 and Y")
screen(2) #屏幕2预备输出
plot(X2,Y,type="l")
解方程:
x必须为变量,其他为形参
f<-function(x,a,b,c){return(a*x^2+b*x+c)}
root<-uniroot(f,c(0,5),a=4,b=3,c=-2,tol=0.01)
root$root
因子:
x <- c(rep(c(1,2,3),3))#元素123重复3次向量
factor(x) #将向量转化为因子
随机数:
rnorm(n, mean=1, sd=4) #正态分布
runif(n, min = 0, max = 1) #均匀分布
该条转载自http://blog.csdn.net/zhyoulun/article/details/46413727
日期与时间:
x <-date()
x2<-Sys.Date();x<-Sys.time()
x3<-as.Date('2015-01-01');x4<-as.Date('2016-01-05')
x4-x3
as.numeric(x4-x3)
weekdays();months();quarters();julian()
聚类:
K-Means聚类
# k-means
library(factoextra)
#设置随机数种子,保证实验的可重复进行
set.seed(123)
#利用k-mean是进行聚类
tree <- as.data.frame(distance)
km_result <- kmeans(tree, 2, nstart = 15)
#查看聚类的一些结果
print(km_result)
#提取类标签并且与原始数据进行合并
dd <- cbind(tree, cluster = km_result$cluster)
table(dd$cluster)
#进行可视化展示
fviz_cluster(km_result, data = tree,
palette = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),
ellipse.type = "euclid",
star.plot = TRUE,
repel = TRUE,
ggtheme = theme_minimal()
)
层次聚类
# 层次聚类
library(factoextra)
set.seed(123)
#先求样本之间两两相似性
result <- dist(tree, method = "manhattan")
#"euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski".
#产生层次结构
result_hc <- hclust(d = result, method = "ward.D2")
#进行初步展示
fviz_dend(result_hc, cex = 0.5)
fviz_dend(result_hc, k = 3,
cex = 0.5,
k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),
color_labels_by_k = TRUE,
rect = TRUE
)