我使用data.table
来读取长数字(例如1,234,567,890,123),我看到在执行ifelse
语句后,我的列会更改其结构。
这就是发生的事情
class(imports$trade_value)
[1] "integer64"
# Then I replace 0s and NAs
imports$trade_value = ifelse(imports$trade_value == 0 | is.na(imports$trade_value),
imports$trade_value_replacement,
imports$trade_value)
class(imports$trade_value)
[1] "numeric"
我还在integer64
语句中包含两个ifelse
列,并显示
class(imports_csv$trade_value_usd_replacement)
[1] "integer64"
如何将参数传递给ifelse而不破坏结构?
@Frank提出了一个步骤,这就是解决方案:用此替换ifelse
语句
imports = imports[trade_value == 0 | is.na(trade_value), trade_value := trade_value_replacement]