r - Colon-Equals 运算符的正确用法
问题描述
我在 R 中使用 := 在我的数据集中执行一些操作,但是我正在实现的用法会引发错误。
我尝试使用 c() 等其他函数来创建子集,但我需要一些有效的东西,显然 := 应该为我完成这项工作。使用子集函数,我有很多中间数据帧,这当然是不必要的。
#preprocessing steps for getting rid of the null values rows
df_data[Quantity<=0,Quantity:=NA]
df_data[UnitPrice<=0,UnitPrice:=NA]
df_data <- na.omit(df_data)
(从控制台):
> df_data[Quantity<=0,Quantity:=NA]
Error in `:=`(Quantity, NA) :
Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":=").
解决方案
:=
仅适用于 data.tables
这应该工作
df_data <- data.table(Quantity = -5:5)
df_data[Quantity<=0,Quantity:=NA]
na.omit(df_data)
这将产生错误
df_data <- data.frame(Quantity = -5:5)
df_data[Quantity<=0,Quantity:=NA]
na.omit(df_data)
也就是说,如果您只是过滤掉小于 0 的值,您可以这样做
df_data <- df_data[Quantity > 0 & UnitPrice > 0]
推荐阅读
- c# - 重新排序 CollectionView 不起作用购买在 cdoe 后面添加视图
- javascript - 使用 setTimeout 全屏显示
- javascript - 在第一次单击按钮时添加重定向,然后在特定时间禁用它,即使在使用 jQuery 重新加载页面后也是如此
- java - 如何将多个 json 字段映射到单个 java 映射?
- python-3.x - 尝试使用未初始化的值变量/ExponentialMovingAverage
- angular - Angular - 在 ngFor 中使用函数创建 html 元素无法正确显示
- docker - 如何在运行的docker容器中覆盖环境变量
- python - AttributeError:“函数”对象没有属性“as_view”。怎么了?
- mpi - 在完成任务时配对数据交换过程
- python - 在条件下填充df的NaN值