簡體   English   中英

如果滿足條件,則將整行添加到 R 中的新數據框中

[英]If a condition is met, add entire row to a new dataframe in 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 行,但我工作正常,因為它循環到 9437,這是數據幀的長度

謝謝

這實際上只是一個過濾任務,所以你可以做一些更簡單的事情,比如:

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

或者在tidyverse

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

如果您堅持使用for循環,那么下面的代碼可能正是您需要的

highCost <- data.frame()

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

否則,更簡單的方法應該是

highCost <- subset(AirBnbListingsDublin, price >= 1000)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM