首页 > 解决方案 > 如果满足条件,则将整行添加到 R 中的新数据框

问题描述

我正在循环通过我的主要数据框来确定在 Air BnB 中过夜的成本 > 1000 的位置,它会将整行添加到新的数据框中。目前,它只是添加一行,但我希望它添加所有这些。

下面是我的代码

highCost <- data.frame()

for(i in 1:length(AirBnbListingsDublin$price)){
    if(AirBnbListingsDublin$price[i] >= 1000){
        highCost <- data.frame(rbind(AirBnbListingsDublin[i, ]))
    }
}

添加到新数据帧的行是主数据帧的第 9273 行,但 i 工作正常,因为它循环直到 9437,这是数据帧的长度

谢谢

标签: r

解决方案


这实际上只是一个过滤任务,所以你可以做一些更简单的事情,比如:

highCost <- AirBnbListingDublin[AirBnbListingsDublin$price >= 1000,]

或在tidyverse

highcost <- dplyr::filter(AirBnbListingDublin, price >= 1000)

推荐阅读