【发布时间】:2016-01-21 19:21:19
【问题描述】:
在这个论坛上有几个关于 if 语句的问题。我尝试了这些建议,但代码每次都产生相同的错误。下面是代码应该做什么的描述:
- 在现有数据框(文件)中创建一个新列(效率)
- 根据现有列(持续时间)中的值填充效率列
我创建了以下代码:
file$Efficiency<-if(file$Duration <= 5) {"Above Par"} else
{if(file$Duration > 5 & file$Duration <= 15) {"Par"} else
{if(file$Duration > 15 & file$Duration <= 30) {"Below Par"} else
{"Unacceptable"}}}
我收到以下警告
Warning message:
In if (file$Duration <= 5) { :
the condition has length > 1 and only the first element will be used
在几篇文章中提到 if 语句采用一个值并且没有接受它作为我所看到的解释。如果这句话是真的,那么我想知道 else 函数有什么用。
【问题讨论】:
-
您在寻找
cut()吗? -
这些帖子中没有提到在处理向量时需要使用
ifelse????????? -
@jogo:我以前没听说过cut。你能扩展一下吗?
-
@42: If else 满足一个条件,我的尝试是搜索不同的时间并相应地分配效率级别。
-
file$Duration是一个向量,它的一些元素可能满足条件,而另一些则不满足。这种模棱两可导致只考虑第一个元素的警告。通过使用ifelse,您可以为file$Duration中的每个向量元素定义一个动作,具体取决于它是否满足条件。
标签: r if-statement