r - R中的条件嵌套IF
问题描述
我有一列包含以下一些值:0 到 6 每个值都指帐户类型,无论是收入、费用等
我正在尝试使用 IF 来查找该值并为其分配正确的分类。
我尝试了以下方法,但没有奏效。
account_type <- if(df$class = 0) {
account_type = 'Suspense'
} else if (df$class = 1) {
account_type = 'Asset'
}
我很感激你的帮助。如果您结合解释,我也将不胜感激。
谢谢,
解决方案
我想更可取的 R-ish 方式来做你想做的事情是使用查找表。
首先,我创建了一个可重现的示例:
set.seed(68826333)
(
dat <- data.frame(
account = sample(1:4, 10, TRUE),
value = rnorm(10)
)
)
# account value
#1 2 1.17913936
#2 1 -1.40654534
#3 3 -2.46079924
#4 1 -0.20670095
#5 1 -1.29534910
#6 1 0.80030380
#7 4 0.37431903
#8 4 -0.07338782
#9 1 -0.50872642
#10 4 -0.15198686
然后我创建一个查找表:
(
lookup <- c('1' = 'Asset', '2' = 'Suspense', '3' = 'Revenue', '4' = 'Expense')
)
# 1 2 3 4
# "Asset" "Suspense" "Revenue" "Expense"
在我的查找表中,向量的名称对应于account
变量 from的值dat
。
现在,每当您想将数字数据从account
变量映射到帐户类型时,您只需进行简单的子集化和重新分配:
dat$account <- lookup[as.character(dat$account)]
#dat
# account value
#1 Suspense 1.17913936
#2 Asset -1.40654534
#3 Revenue -2.46079924
#4 Asset -0.20670095
#5 Asset -1.29534910
#6 Asset 0.80030380
#7 Expense 0.37431903
#8 Expense -0.07338782
#9 Asset -0.50872642
#10 Expense -0.15198686
推荐阅读
- sql - 如果表的视图仍在使用中,如何限制表被删除
- c# - 在 C# 中查找和获取具有特定属性的 XML 行
- activeweb - ActiveWeb:模拟注入服务
- keras - Keras-VGG16-places365 低准确率问题
- c# - 通过 HttpWebRequest 从页面转发隐藏字段
- html - 在 Opera/Chrome 浏览器中滚动时,粘性导航栏在某一点闪烁(渲染错误?)
- google-apps-script - 您可以将所有文本“存储”在谷歌文档中并在某人的编辑上重新写回吗?
- reactjs - React 组件道具样式
- javascript - Ajax 请求返回错误,而 .net 核心控制器返回 200 Ok
- angular - Angularfire 2对象插值不打印任何东西