r - 在 for 循环中使用 if 语句根据条件计算行数
问题描述
我正在使用包 ggplot2 中的数据集 txhousing 并添加一列来检查中值的相对性能。
a <- summary(txhousing$median)
txhousing$cat <- ifelse(txhousing$median > a[which(names(a) == "Median")], "Hi", "Lo")
我只是想检查有多少数据点被归类为 Lo,并为它编写了这段代码
b <- 0
for (i in 1:nrow(txhousing)) {
if (txhousing$cat[i] == "Lo") {
b <- b + 1
}
}
但我得到了错误
if (txhousing$cat[i] == "Lo") { 中的错误:需要 TRUE/FALSE 的缺失值
我究竟做错了什么?
解决方案
如果我正确理解您的问题,您需要做的就是
sum(txhousing$cat == "Lo", na.rm= TRUE)
3995
这告诉您“有多少数据点被归类为 Lo”。如果你想知道Lo和Hi,你可以
table(txhousing$cat)
推荐阅读
- google-app-maker - 有没有办法使用 API 来安排邮件消息?
- javascript - onclick JAVASCRIPT 如何从同一个类中获取每个值
- gremlin - 亚马逊海王星与 Tinkerpop 兼容?为什么以及如何?
- java - 如何实例化封装的对象?
- sorting - 排序如何在 Hive 中的分区倾斜数据集上工作
- r - 未找到闪亮的 Flexdashboard 对象
- r - 如何更改 R 中的 y 轴文本?
- swift - 试图在 Swift 中编写一个可编码的类,但格式不正确?
- apache - Htacces 重定向特定的蛞蝓
- javaparser - javaparser 符号求解器:我可以解析一个类的继承类,但不能解析其他任何东西