为数据集分配颜色

时间:2020-04-02 18:36:57

标签: r

我有以下代码生成带有以下图形的随机数据集,

x1=abs(rnorm(200))
x2=abs(rnorm(200))-7*x1^2
plot(x1,x2)

enter image description here

我的目标是分离数据,以使data.frame中的前100点为蓝色,而其余100点为红色。所以我有两个简单的问题, 1)如何分离数据,以便沿x1移动时,前100个点是蓝色的,另一个是红色的?我在下面添加了一张图片以进行说明,请注意使用截图工具来吸引我的艺术才能。 enter image description here 2)如果在分配颜色之后,一个简单的z = data.frame(x1,x2,colours)足以将数据放入数据集中,以便我可以使用一些基本的机器学习工具(例如SVM)运行数据,装袋和提振?

为帮助喝彩

1 个答案:

答案 0 :(得分:1)

set.seed(42)
dat <- data.frame(x1 = abs(rnorm(200)))
dat$x2 <- abs(rnorm(200)) - 7*dat$x1^2
dat$col <- ifelse(rank(dat$x1) <= 100, "blue", "red")
plot(x2 ~ x1, data = dat, col = col)
# also: plot(dat$x1, dat$x2, col = dat$col)

sample plot

“前100”是主观的,具体取决于您的需求和数据的上下文。可能还需要与原点(毕达哥拉斯)的欧几里得距离,曼哈顿距离或其他某种估值。或x1 <= mean(x1)x1 <= median(x1)。很多方法,这只是一种方法,我们使用ifelse来进行区分/分配。