r - 从 R 中的数据集中删除 NA
问题描述
我已使用此功能删除非空白行:
data <- data[data$Age != "",]
在这个数据集中
Initial Age Type
1 S 21 Customer
2 D Enquirer
3 T 35 Customer
4 D 36 Customer
但是,如果我运行上面的代码,我会得到:
Initial Age Type
1 S 21 Customer
N/A N/A N/A N/A
3 T 35 Customer
4 D 36 Customer
当我想要的是:
Initial Age Type
1 S 21 Customer
3 T 35 Customer
4 D 36 Customer
我只想要没有任何 NA 的数据集,我想删除任何非空白行,所以理想情况下所有 NA 和任何只是“”的行。
我已经尝试过 na.omit 函数,但这会从我的数据集中删除所有内容。
这是我使用的示例数据集,但在我的数据集中有超过 1000 列,我想删除所有NA
用于特定列名的行。
这是我的第一篇文章,如果这不是编写代码的正确方法,我深表歉意,而且我对R
.
我的行号也已转换为NA
我不想要它的时候,它搞乱了我的计算。
感谢您花时间阅读和评论这篇文章。
解决方案
正如评论中所指出的,最好知道“空”年龄单元格中的确切值是什么。当我使用以下方法重新创建上述数据片段时:
data <- data.frame(Initial = c("S", "D", "T", "D"),
Age = c(21, "", 35, 36),
Type = c("Customer", "Enquirer", "Customer", "Customer"))
我们可以看到“Age”被转换为“character”类型的列。使用以下代码,我们可以有效地删除那些“空”的年龄行:
data <- subset(data, is.finite(as.numeric(Age)))
这采用数据框“数据”的子集,其中 Age 变量的数字版本是有限数,从而消除了缺少 Age 值的行。
希望这能解决您的问题!
推荐阅读
- angular - 异步修改数组 observable 中的每一项,并返回修改后的 observable
- javascript - 每隔几分钟编辑同一条消息
- php - 如何使用 PHP 代码将 XML 结果转换为 JSON 数组或 PHP 数组
- java - Postman 中应使用 ',' 而不是 't'
- java - 无法显示jsp页面
- microservices - 在 AWS ECS 上使用 Netflix Conductor Orchestration
- java - 将较大的数字向右移动,将较小的数字向左移动给定值
- mysql - IBM Watson Assistant:如何从 AWS MySQL 表中读取数据并根据数据确定对话(是或否)?
- php - 还有其他方法可以正确计算 Am 和 Pm 的时间吗?
- javascript - HTTP 请求 POST AJAX(JS) 提交表单