r - 条件算术运算错误信息
问题描述
在我的数据框中,我想通过将DiscVar
变量乘以取决于产品的数字( 1400
、(1400-342)
或)来计算产品(帽子、鞋子或雨伞)的成本。(1400+500)
计算仅适用于第一次操作的问题,即dfq$DiscVar * 1400
,我不知道为什么。
谢谢你的帮助!!
# Data & arithmetic operation
dfq <- data.frame(ObjVar=c("hat","hat","shoe","shoe","umbrella"),DiscVar=c(0.19,0.39,0.18,1.00,0.64))
dfq$CostVar[dfq$ObjVar == "hat"] <- dfq$DiscVar * 1400
dfq$CostVar[dfq$ObjVar == "shoe"] <- dfq$DiscVar * (1400-342)
dfq$CostVar[dfq$ObjVar == "umbrella"] <- dfq$DiscVar * (1400+500)
解决方案
您对结果进行子集化,但忘记对操作数进行子集化。
dfq <- data.frame(ObjVar=c("hat","hat","shoe","shoe","umbrella"),DiscVar=c(0.19,0.39,0.18,1.00,0.64))
dfq$CostVar <- 0 # First, create the entire new column
dfq$CostVar[dfq$ObjVar == "hat"] <- dfq$DiscVar[dfq$ObjVar == "hat"] * 1400
dfq$CostVar[dfq$ObjVar == "shoe"] <- dfq$DiscVar[dfq$ObjVar == "shoe"] * (1400-342)
dfq$CostVar[dfq$ObjVar == "umbrella"] <- dfq$DiscVar[dfq$ObjVar == "umbrella"] * (1400+500)
推荐阅读
- html - 用css为页眉和页脚创建对角线
- deep-learning - 在 mmdetection 中运行 train_detector 后如何保存模型权重?
- dataframe - 如何使用 pandas 正确读取 csv 文件?
- installation - 如何调试采用 App.Config 参数的 C# 安装程序项目
- wordpress - Wordpress 插件开发,符号链接不起作用
- python - 索引具有多个范围的numpy数组
- python - 根据 2 个值检查输入
- python-3.x - AttributeError:只能使用带有字符串值的 .str 访问器(cdQA 包)
- python - 为什么在反转链表并处理新链表的头部后出现 NoneType 错误?
- android - 如何创建小部件(我已经有一个可以工作的活动)