首頁>Program>source

我有一个DF,其中包含2006年至2018年的贸易資料(" all_trade",345344行)。 我想過濾掉每年的第一笔交易value(按年分組,然後應用過濾器)。

尝試

Library (dplyr) 
trade_3q <- all_trade %>% group_by(all_trade$Year) %>% filter(all_trade$log_trade > quantile(all_trade$log_trade, 0.25)

但收到"錯誤: filter()問题 輸入 ..1 . x輸入 ..1 必须為25874或1,而不是345344。"
我怎麼了? 谢谢。

最新回復
  • 5月前
    1 #

    為其他人提供答案或帮助,如果您可以提供示例資料,將非常有帮助.根据您的描述,我只能猜測您的資料看起来如何.您可以尝試以下方法:

    # simulate a data set
    set.seed(1234)
    tb <- tibble(year = sample(2006:2018, 50, replace = TRUE),
                 trade = runif(50, 50000, 1000000)) %>%
      mutate(log_trade = log(trade))
    # compute the quantile
    tb2 <- tb %>% 
      group_by(year) %>%
      summarise(q25 = quantile(log_trade, 0.25)) 
    # join back and filter             
    tb %>% left_join(tb2, by = "year") %>%
      filter(log_trade > q25)
    
    

  • 5月前
    2 #

    quantile()也返迴描述性字元串,即25%。

    您可以尝試通過將Quantile()包裝為as.numeric()或unname()来删除此內容。

    看起来您可能還需要在末尾加上另一个括號。

  • html:如何仅使用CSS將複選框与標簽對齐
  • ios swift:iOS Swift-將設備令牌另存為print不同值的資料格式