r - 根据条件更改列的值(缺失数据和分类)
问题描述
对于一份问卷,我想制作一份 df1 的副本,其中 x 列发生以下两件事:
将 x 的缺失数据(编码为 0)替换为“-1”。所以所有的0都必须变成-1。
x 的特定部分以数字而不是类别编码。我创建了一个函数来将不同的类别分配给不同的值
categorise <- function(a_vector) { a_vector = case_when(
a_vector >= 0 & a_vector < 50 ~ 1,
a_vector >= 50 & a_vector < 500 ~ 2,
a_vector >= 500 & a_vector < 5000 ~ 3,
a_vector >= 5000 & a_vector < 50000 ~ 4,
a_vector >= 50000 & a_vector < 500000 ~ 5,
a_vector >= 500000 & a_vector < 5000000 ~ 6,
a_vector >= 5000000 & a_vector < 50000000 ~ 7,
a_vector >= 50000000 & a_vector < 500000000 ~ 8)
strong texta_vector }
解决方案
我们可以用findInterval
replace(findInterval(a_vector, c(0, 50, 500, 5000, 50000,
500000, 5000000, 50000000)), a_vector == 0, -9)
#[1] -9 1 1 2 2 3 4
或与cut
as.integer(cut(a_vector, breaks = c(0, 50, 500, 5000, 50000, 500000, 5000000, 50000000)))
数据
a_vector <- c(0L, 1L, 10L, 65L, 250L, 555L, 5000L)
推荐阅读
- c# - 如何将 C# 编译器错误位置(行、列)映射到 Roslyn API 生成的 SyntaxTree?
- python-3.x - Mathplotlib - 如何在左右两侧绘制 y 轴标签和刻度线
- json - 如何使用 dart 修改 json 文件
- vb.net - MySqlException:列计数与第 1 行的值计数不匹配
- sql-server - 将行号添加到 Microsoft Report Builder 输出
- python - 多线程时 input() 返回 EOF 错误
- javascript - 如果函数花费的时间超过 X 毫秒,则显示加载微调器
- android-studio - 我的应用程序崩溃而在 logcat 中没有显示任何错误
- apache-spark - Pyspark SQL 从组中获取所有最高值并评估是否有欺骗性
- python - 如何使用 gzip 模块打开 csv 文件