首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在if语句中有语法错误

在if语句中有语法错误
EN

Stack Overflow用户
提问于 2019-03-24 17:21:57
回答 1查看 50关注 0票数 0

我有以下问题:

在导入的数据框架中,我需要创建一个名为“profit_margin_flag”的新列,其值计算如下:利润率=利润/销售额。

a.If利润率为负值,新列应具有负值。

b.If利润率为正且小于10%,新列应具有“低利润率”的价值。

c.If利润率为10%以上,但低于25%,新列应具有“标准利润率”的价值。

d.If利润率为50%以上,新列应具有“高利润率”的价值。

我编码了这个:

代码语言:javascript
复制
orders$profit_margin_flag <- orders$Profit/orders$Sales
n <- nrow(orders)
`for (i in (1:n))`
{
if(orders$profit_margin_flag[i] < 0)
{orders$profit_margin_flag[i] <- "negative"}
  else if(orders$profit_margin_flag[i] >0 && <.10)
    {orders$profit_margin_flag[i]<- "low margin"}
else if(orders$profit_margin_flag[i] >= .10 && < .25)
  {orders$profit_margin_flag[i]<- "standard margin"}
 else if(orders$profit_margin_flag[i] >= .50) 
   {orders$profit_margin_flag[i]<- "high margin"}
}

我收到这个错误:

代码语言:javascript
复制
else if(orders$profit_margin_flag[i] >0 && <.10)
#Error: unexpected 'else' in "  else"
#     {
+      orders$profit_margin_flag[i]<- "low margin"
+   }

else if(orders$profit_margin_flag[i] >= .10 && < .25)
Error: unexpected 'else' in "else"

如果(orders$profit_margin_flagi >= .50)错误:“否则”中未预料到的“否则”中的“未预料到的”,则{orders$利润率_standard<-“标准保证金”}否则错误:意外的'}‘in "}“

EN

回答 1

Stack Overflow用户

发布于 2019-03-24 19:46:20

正如@mickey所指出的,&& < .10不是有效的语法。

话虽如此,您想要将profit_margin_flag的值替换为“负值”等(如您在OP中的具体说明),还是希望将其分配给一个新变量?

我稍微清理了您的代码(将标志分配给一个新变量profit_margin_flag,以及最初存储在profit_margin中的裕度值),这应该是可行的。

代码语言:javascript
复制
orders <- data.frame(profit_margin = c(-2, 0.07, 0.14, 11), profit_margin_flag = rep_len(NA, 4))

for(i in 1:nrow(orders)){
 +   if(orders$profit_margin[i] < 0){
 +     orders$profit_margin_flag[i] <- "negative"
 +   }
 +   else if(orders$profit_margin[i] > 0 && orders$profit_margin[i] < 0.10){
 +     orders$profit_margin_flag[i]<- "low margin"
 +   }
 +   else if(orders$profit_margin[i] >= 0.10 && orders$profit_margin[i] < 0.25)
 +   {
 +     orders$profit_margin_flag[i]<- "standard margin"
 +   }
 +   else if(orders$profit_margin[i] >= 0.50) 
 +   {
 +     orders$profit_margin_flag[i]<- "high margin"
 +   }
 + }

orders
#   profit_margin profit_margin_flag
# 1         -2.00           negative
# 2          0.07         low margin
# 3          0.14    standard margin
# 4         11.00        high margin
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55326452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档