r - 如何将空格分隔的字符串转换为r中的数据框

标签 r dataframe tidyverse readr

我从 OCC 网站上抓取了这些数据,并返回了一个以空格分隔的 ascii 文件。我希望将此字符串转换为数据框。

我尝试过使用 read.table、readr::read_tsv,但没有得到所需的结果。下面是访问我要转换的数据的代码。

  library(rvest)
  library(readr)

  data =  read_html('https://www.theocc.com/webapps/series-search? 
  symbolType=U&symbol=AAPL')%>%html_text()

  x = read.table(data, header = T) 
  x = read_tsv(data)   

我本来希望看到结果以数据帧的形式出现,但是 read.table() 将结果打印到控制台,并带有错误和警告消息。

最佳答案

下载的文件包含标题上方的描述性内容;实际上有 6 行:

Series Search Results for AAPL

Products for this underlying symbol are traded on: 
AMEX ARCA BATS BOX C2 CBOE EDGX GEM ISE MCRY MIAX MPRL NOBO NSDQ PHLX 

        Series/contract     Strike          Open Interest           
ProductSymbol   year    Month   Day Integer Dec C/P Call    Put Position Limit  
AAPL        2019    01  25  100 000 C P     0   190 25000000
AAPL        2019    01  25  105 000 C P     0   127 25000000
AAPL        2019    01  25  110 000 C P     0   87  25000000
AAPL        2019    01  25  115 000 C P     0   314 25000000
...

You can read it via read_tsv(skip = 6):

library(rvest)
library(readr)

df <- read_html(
  'https://www.theocc.com/webapps/series-search?symbolType=U&symbol=AAPL'
) %>% 
  html_text() %>% 
  read_tsv(
    skip = 6
  )

但是,第一列的标题很宽,并且有多个 (2) TAB 将其与下一列分隔开,从而导致

enter image description here

你需要做一些按摩:

dfnames <- names(df)[1:10]
df <- df %>% 
  select(-year)
names(df) <- dfnames

enter image description here

关于r - 如何将空格分隔的字符串转换为r中的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54395315/

相关文章:

r - 在invalidatelat观察者内增加reactivevalue

r - 使用季度日期格式缩放 x 轴

r - 根据列关系创建数组

使用 mutate_if 和 Replace_na 替换数字列上的 NA

r - as.tibble()、as_data_frame() 和 tbl_df() 之间有什么区别?

r - 使用 R 计算拉伸(stretch)向量的滚动和

R - 检查 PostgreSQL 中是否存在 View

python - 读取 Pandas 数据框前几行的方法

python - 比较 df 中的上一个\下一个值并根据条件进行修正

r - 将管道映射到 tidyverse 中的多个列