【发布时间】:2021-05-25 02:04:05
【问题描述】:
我正在使用 R 编程语言。
使用以下代码,我可以在同一页面上放置两个图:
#load library
library(dbscan)
#specify number of plots per page
par(mfrow = c(1,2))
#load libraries
library(dbscan)
library(dplyr)
#generate data
n <- 100
x <- cbind(
x=runif(10, 0, 5) + rnorm(n, sd=0.4),
y=runif(10, 0, 5) + rnorm(n, sd=0.4)
)
### calculate LOF score
lof <- lof(x, k=3)
### distribution of outlier factors (first plot)
summary(lof)
hist(lof, breaks=10)
### point size is proportional to LOF (second plot)
plot(x, pch = ".", main = "LOF (k=3)")
points(x, cex = (lof-1)*3, pch = 1, col="red")
这会产生以下情节:
现在,我正在尝试在同一页面上制作多个图(例如 6 个图,2 对 3)。我尝试使用“for 循环”(对于 k = 3、4、5)来实现这一点:
par(mfrow = c(3,2))
vals <- 3:5
combine <- vector('list', length(vals))
count <- 0
for (i in vals) {
lof_i <- lof(x, k=i)
### distribution of outlier factors
summary(lof_i)
hist(lof_i, breaks=10)
### point size is proportional to LOF
plot(x, pch = ".", main = "LOF (k=i)")
points(x, cex = (lof_i-1)*3, pch = 1, col="red")
}
但是,这似乎只是在同一页面上重复同一图表 6 次:
有人可以告诉我如何更正此代码吗?
是否也可以保存文件“lof_3、lof_4、lof_5”?似乎没有创建这些文件,只创建了“lof_i”:
> lof_3
Error: object 'lof_3' not found
> head(lof_i)
[1] 1.223307 1.033424 1.077149 1.011407 1.040634 1.431029
谢谢
【问题讨论】:
标签: r for-loop plot histogram data-manipulation