R data.table + ifelse with integer64,如何替换0和NA?

时间:2017-03-08 15:45:00

标签: r data.table

我使用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]

0 个答案:

没有答案