是否有R函数只能解析ASCI文件的块部分?

我有一个这样的文本文件:

4 -- Elmo857 Jaskolski867 (10 y/o M) Brockton,Massachusetts

VITAL SIGNS

  * Creatinine Ratio =  13.06
  *                   Glucose =  65.38
  *                    Height = 144.60

-----
3 -- Lan153 Kris249 (14 y/o F) South Hadley,Massachusetts 

VITAL SIGNS

  * Creatinine Ratio =   0.79
  *                   Glucose =  67.06
  *                    Height = 156.80

-----

我需要在R中解析它以生成这样的数据帧

ID Name                Age Gender Location                  Creatinine Ratio Glucose Height

4  Elmo857Jaskolski867 10  M      Brockton,Massachusetts    13.06          65.38   144.6

3  Lan153Kris249       14  F      SouthHadley,Massachusetts 0.79           67.06   156.8

已经有处理特定解析请求的答案,但是我找不到任何有关块解析的信息(每个先证者都受“ -----”限制。 对我有用吗?

xialz 回答:是否有R函数只能解析ASCI文件的块部分?

使用tidyverse ...

很简单
library(dplyr)
library(stringr)

df <- text %>%               #assumes your text is a single character string
  str_split("-----") %>%     #split at -----
  unlist() %>%               #unlist
  str_trim() %>%             #trim spaces
  enframe(name = NULL) %>%   #convert to dataframe (tibble) - one column called value
  mutate(ID = str_extract(value,"^\\d+"),#first digits
         Name = str_trim(str_match(value,"-- (.+?) \\(")[,2]),#between -- and (
         Age = as.numeric(str_match(value,"\\((\\d+)")[,#digits after (
         Gender = str_match(value,"(M|F)\\)")[,2],#MF before )
         Location = str_trim(str_match(value,"\\) (.+?)\\n")[,#after ) to end line
         Creat = as.numeric(str_match(value,"Ratio =\\s+([\\.0-9]+)")[,Glucose = as.numeric(str_match(value,"Glucose =\\s+([\\.0-9]+)")[,Height = as.numeric(str_match(value,"Height =\\s+([\\.0-9]+)")[,2])) %>% 
  filter(!is.na(ID)) %>%     #remove final blank row
  select(-value)             #remove original text

df

  ID    Name                   Age Gender Location                    Creat Glucose Height

1 4     Elmo857 Jaskolski867    10 M      Brockton,Massachusetts     13.1     65.4   145.
2 3     Lan153 Kris249          14 F      South Hadley,Massachusetts  0.79    67.1   157.
本文链接:https://www.f2er.com/3138555.html

大家都在问