R中的if-else语句

R中的if-else语句,r,R,我有一个文件包含我分析的p值。我想使用if-else语句执行以下操作: 如果p值小于0.01,则显示绿色。如果p值大于0.01且小于0.05,则显示红色。如果p值大于0.05,则显示黄色 我尝试使用以下代码,但不起作用: col=ifelse(data < 0.01,"green" , ifelse(data > 0.01 & data < 0.05, "red"), ifelse(data>0.05,

我有一个文件包含我分析的p值。我想使用if-else语句执行以下操作:

如果p值小于0.01,则显示绿色。如果p值大于0.01且小于0.05,则显示红色。如果p值大于0.05,则显示黄色

我尝试使用以下代码,但不起作用:

col=ifelse(data < 0.01,"green" , 
           ifelse(data > 0.01 & data < 0.05, "red"), 
                  ifelse(data>0.05, "yellow"))).
col=ifelse(数据<0.01,“绿色”,
如果其他(数据>0.01,数据<0.05,“红色”),
ifelse(数据>0.05,“黄色”))。
col=ifelse(数据<0.01,“绿色”,
如果其他(数据>0.01和数据<0.05,“红色”),
ifelse(数据>0.05,“黄色”))。
/**这里有一些只是基础的东西:创建一个完成工作的方法(不需要是我设置的名称)要容易得多

 you should use the else's and if's as following:

 if(condition){command}
 else if (another condition){command} 
 else{command that runs if no conditions are triggered}


 notice that you can use as many else if() as needed as long as you finish using else and only else */


public void changeColor(){
if(data<0.01)
col = "green"
else if(data>0.01 && data <0.05)
col= "red"
else{col="yellow"}
您应该使用else和if,如下所示:
if(条件){command}
else如果(另一个条件){command}
else{在未触发任何条件时运行的命令}
请注意,只要完成使用else和only-else,就可以根据需要使用任意多的else if()*/
公共void changeColor(){
如果(数据0.01&&data
col=ifelse(数据<0.01,“绿色”,
如果其他(数据>0.01和数据<0.05,“红色”),
ifelse(数据>0.05,“黄色”))。
/**这里有一些只是基础的东西:创建一个完成工作的方法(不需要是我设置的名称)要容易得多

 you should use the else's and if's as following:

 if(condition){command}
 else if (another condition){command} 
 else{command that runs if no conditions are triggered}


 notice that you can use as many else if() as needed as long as you finish using else and only else */


public void changeColor(){
if(data<0.01)
col = "green"
else if(data>0.01 && data <0.05)
col= "red"
else{col="yellow"}
您应该使用else和if,如下所示:
if(条件){command}
else如果(另一个条件){command}
else{在未触发任何条件时运行的命令}
请注意,只要完成使用else和only-else,就可以根据需要使用任意多的else if()*/
公共void changeColor(){

if(data0.01&&data在这种情况下,
ifelse
是一个糟糕的问题解决方案。听起来好像您试图获取一组连续值(p值)并为其生成离散标签。R的base
cut
函数正是为此目的而设计的。假设我们有:

example.data <- data.frame(p = c(0.0001, 0.001, 0.01, 0.025, 0.5))

       p
1 0.0001
2 0.0010
3 0.0100
4 0.0250
5 0.5000

在这种情况下,
ifelse
是一个糟糕的问题解决方案。听起来好像您试图获取一组连续值(p值)并为其生成离散标签。R的base
cut
函数正是为此目的而设计的。假设我们有:

example.data <- data.frame(p = c(0.0001, 0.001, 0.01, 0.025, 0.5))

       p
1 0.0001
2 0.0010
3 0.0100
4 0.0250
5 0.5000

“不起作用”是什么意思?请准确地给出错误消息。您应该在问题中提供答案。
ifelse()
函数需要一个
if
else
部分。看起来您的“黄色”部分缺少“else”另外,看起来红色部分关闭不正确。ifelse是一个矢量化函数,不适用于这种嵌套if-else。只需使用常规if、else-if、else-if等,因为您没有矢量化需求。它可以工作,但第二个和第三个条件的颜色相同。括号有问题。如果“绿色”是最外面的ifelse的yes条件,第二个ifelse应该一直包装到结束。像这样
ifelse(数据<0.01,“绿色”,ifelse(数据>0.01&数据<0.05,“红色”,ifelse(数据>0.05,“黄色”))
。这里你真的应该使用嵌套的if,else-if,else-if,…。你说“不工作”是什么意思。请准确地给出错误消息。您应该在问题中提供。函数的
ifelse()
需要
if
else
部分。看起来您的“黄色”部分缺少“else”另外,看起来红色部分关闭不正确。ifelse是一个矢量化函数,不适用于这种嵌套if-else。只需使用常规if、else-if、else-if等,因为您没有矢量化需求。它可以工作,但第二个和第三个条件的颜色相同。括号有问题。如果“绿色”是最外面的ifelse的是条件,第二个ifelse应该一直包装到结束。像这样
ifelse(数据<0.01,“绿色”,ifelse(数据>0.01&数据<0.05,“红色”,ifelse(数据>0.05,“黄色”))
。这里你真的应该使用嵌套if,else if,else if,…这是一个R问题嗨,Rutzen,我运行了你的函数,但没有给出任何结果。因为我只给了你方法,你需要调整他以适应你的类。我就是这么做的:changeColor这是一个R问题嗨,Rutzen,我运行了你的函数,但没有给出任何结果。因为我只给了你方法,你需要让他适应你的班级。我就是这么做的:changeColor