gpt4 book ai didi

r - 跳过行直到具有特定值的行

转载 作者:行者123 更新时间:2023-12-02 09:18:44 26 4
gpt4 key购买 nike

我需要从 URL 读取一个 .txt 文件,但想跳过这些行直到具有特定值的行。网址是 https://fred.stlouisfed.org/data/HNOMFAQ027S.txt数据采用以下形式:

...(行数)

...(行数)

...(行数)

日期值

1945-01-01 144855

1946-01-01 138515

1947-01-01 136405

1948-01-01 135486

1949-01-01 142455

我想跳过所有行,直到包含“DATE//VALUE”的行,然后从该行开始导入数据(包括“DATE//VALUE”)。有没有办法用 data.table 的 fread() 或任何其他方式(例如 dplyr)做到这一点?

非常感谢您付出的努力和时间!

最好的,

c.

最佳答案

这里有一种方法可以使用 readr::read_lines、dplyr 和来自 stringr 的字符串处理从这些文本文件中提取信息。

library(tidyverse)
library(stringr)

df <- data_frame(lines = read_lines("https://fred.stlouisfed.org/data/HNOMFAQ027S.txt")) %>%
filter(str_detect(lines, "^\\d{4}-\\d{2}-\\d{2}")) %>%
mutate(date = str_extract(lines, "^\\d{4}-\\d{2}-\\d{2}"),
value = as.numeric(str_extract(lines, "[\\d-]+$"))) %>%
select(-lines)

df
#> # A tibble: 286 x 2
#> date value
#> <chr> <dbl>
#> 1 1945-10-01 1245
#> 2 1946-01-01 NA
#> 3 1946-04-01 NA
#> 4 1946-07-01 NA
#> 5 1946-10-01 1298
#> 6 1947-01-01 NA
#> 7 1947-04-01 NA
#> 8 1947-07-01 NA
#> 9 1947-10-01 1413
#> 10 1948-01-01 NA
#> # ... with 276 more rows

我使用 stringr::str_detect 过滤了所有你想保留的行,然后使用 stringr::str_extract 和正则表达式从字符串中提取了你想要的信息.

关于r - 跳过行直到具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44507703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com