我有一个数据框 df,其中有多个列。
其中两列(AGE和SALARY)的类型为double。
我想用0替换AGE列中的缺失值,
用"not found"替换SALARY列中的缺失值。
最高效的方法是什么?
我遇到了错误:
replace_na(df, list(AGE=0, SALARY="not found"))
我遇到了错误:
Error in `stop_vctrs()`:
! Can't convert `replace$SALARY` <character> to match type of `data$SALARY` <double>.
Backtrace:
1. tidyr::replace_na(df, list(AGE= 0, SALARY= "not found"))
2. tidyr:::replace_na.data.frame(df, list(AGE= 0, SALARY= "not found"))
3. vctrs::vec_assign(...)
4. vctrs `<fn>`()
5. vctrs::vec_default_cast(...)
6. vctrs::stop_incompatible_cast(...)
7. vctrs::stop_incompatible_type(...)
8. vctrs:::stop_incompatible(...)
9. vctrs:::stop_vctrs(...)
编辑:这是我的数据集来源:https://drive.google.com/file/d/1cKxzNrnIMq4RxdMcBz3nlr7YtYaPhn5_/view?usp=sharing
dput
。对于这个示例,代码是可以正常工作的,即df <- data.frame(AGE = c(NA, 2, 3, 5, 7), SALARY = c(4, 3, NA, 7, 5)); replace_na(df, list(AGE=0, SALARY="not found"))
。 - akrunpackageVersion('tidyr')
的问题。我使用的是1.1.3
。 - akrun