r - if 语句有语法错误
问题描述
我有以下问题:
在导入的数据框中,我需要创建一个名为“profit_margin_flag”的新列,其值计算如下[利润率=利润/销售额]。
a.如果利润率为负,则新列的值应为“负”。
b.如果利润率为正且小于 10%,则新列的值应为“低利润率”。
c.如果利润率为 10% 或更多,但低于 25%,则新列应具有“标准利润率”值。
d.如果利润率为 50% 或更高,则新列的值应为“高利润率”。
我编码了这个:
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"}
}
我收到此错误:
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_flag[i]<-“标准保证金”} else if(orders$profit_margin_flag[i] >= .50) 错误:“else”中的意外“else”{orders$profit_margin_flag[i]<-“高保证金“} } 错误:“}”中出现意外的“}”
解决方案
正如@mickey 指出的那样,&& < .10
这不是有效的语法。
话虽这么说,你想profit_margin_flag
用“负”等替换 ' 值(正如你在 OP 中具体说明的那样)还是要将它分配给一个新变量?
我稍微清理了您的代码(将标志分配给新变量profit_margin_flag
并且边距值最初存储在 中profit_margin
),这应该可以工作。
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
推荐阅读
- java - Jooq 全球文物重命名
- java - Scala 中的泛型类型
- go - gocqlx Updatebuilder 并得到错误的结果
- android - 我使用颤振制作了一个 android 应用程序,有没有办法从相同的代码构建一个 IPA?
- javascript - 使用 ReactJS Rails 6 从 Axios 将数据传回 prop
- javascript - 为什么Javascript绑定返回任何?
- python - 高错误 ARIMA 模型 - 计数和继续值 - Python
- javascript - 'this' 创建 javascript 对象时
- frameworks - 使用 Catalyst 框架,如何检查 wrapper.tt 中的 uri 路径
- python - 将多页破折号应用程序部署到 Heroku 时出现 R12/超时错误