gpt4 book ai didi

r - 绘制由颜色定义的散点图时使用多个 if else

转载 作者:行者123 更新时间:2023-12-02 08:00:32 25 4
gpt4 key购买 nike

我有一个包含三列的简单数据框。最后一个包含从 1 到 7 的数字。我想要做的是从第一列的两列绘制一个简单的散点图,并根据最后一列的值为点着色。

a <- c(rep(1,17))
b <- c(rep(2,13))
c <- c(rep(1,8))
d <- c(rep(3,4))
e <- c(rep(2,13))
f <- c(rep(4,6))
g <- c(rep(3,13))
h <- c(rep(1,6))
i <- c(rep(3,10))
j <- c(rep(4,5))
k <- c(rep(5,26))
l <- c(rep(6,8))
m <- c(rep(7,9))
n <- c(rep(3,3))
o <- c(rep(7,10))
p <- c(rep(6,6))
q <- c(rep(1,1))
r <- c(rep(7,8))

factor_column <- append(a,b)
factor_column <- append(factor_column,c)
factor_column <- append(factor_column,d)
factor_column <- append(factor_column,e)
factor_column <- append(factor_column,f)
factor_column <- append(factor_column,g)
factor_column <- append(factor_column,h)
factor_column <- append(factor_column,i)
factor_column <- append(factor_column,j)
factor_column <- append(factor_column,k)
factor_column <- append(factor_column,l)
factor_column <- append(factor_column,m)
factor_column <- append(factor_column,n)
factor_column <- append(factor_column,o)
factor_column <- append(factor_column,p)
factor_column <- append(factor_column,q)
factor_column <- append(factor_column,r)

x1 <- c((1:166))
x2 <- c((166:331))
df <- data_frame(x1=x1, x2=x2,factor_column=factor_column)


我试过这样的东西

col_f <- if (df$factor_column=1) {
col = "red"
} else if (df$factor_column=2) {
col= "blue"
}else if (df$factor_column=3) {
col="yellow"
}else if (df$factor_column=4) {
col="black"
}else if (df$factor_column=5) {
col="pink"
}else if (df$factor_column=6) {
col="green"
}else {col="gray"}

plot(df$x1,df$x2, col=col_f)

但它并没有真正起作用。

最佳答案

这是一个简单的矢量化基础 R 解决方案。

cols <- c("red", "blue", "yellow", "black", "pink", "green", "gray")
df$col <- cols[ifelse(df$factor_column < 7, df$factor_column, 7)]

注意:我已经将此结果与 akrun's answer 中的第一个结果进行了比较并且它们是 identical()

关于r - 绘制由颜色定义的散点图时使用多个 if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com