簡體   English   中英

從文本 r 創建 dataframe

[英]create dataframe from text r

我有一個包含超過一百萬行文本的文本文件。 共有三列,人 1、人 2 和年份。 我想提取所有這些值並制作一個數據框。 但是,不知道該怎么做。 請在這方面幫助我。

[1] "[\"Alin Deutsch\", \"Mary F. Fernandez\", 1998],"    
[2] "[\"Alin Deutsch\", \"Daniela Florescu\", 1998],"     
[3] "[\"Alin Deutsch\", \"Alon Y. Levy\", 1998],"         
[4] "[\"Alin Deutsch\", \"Dan Suciu\", 1998],"            
[5] "[\"Mary F. Fernandez\", \"Daniela Florescu\", 1998],"

我想提取所有這些值並制作一個數據框。 但是,不知道該怎么做。 請在這方面幫助我。 output應該是一個三列的數據框,即person1、person2和year,如下所示。

Person1             Person2             Year
Alin Deutsch        Mary F. Fernandez   1998
Alin Deutsch        Daniela Florescu    1998
Alin Deutsch        Alon Y. Levy        1998
Alin Deutsch        Dan Suciu           1998
Mary F. Fernandez   Daniela Florescu    1998

您可以使用strcapture來獲取所需的表:

proto <- data.frame(Person1 = character(), Person2 = character(), date = integer())
strcapture('([^",]+)\\W+([^",]+)\\W+(\\d+)\\]', string, proto)

            Person1           Person2 date
1      Alin Deutsch Mary F. Fernandez 1998
2      Alin Deutsch  Daniela Florescu 1998
3      Alin Deutsch      Alon Y. Levy 1998
4      Alin Deutsch         Dan Suciu 1998
5 Mary F. Fernandez  Daniela Florescu 1998

如果您不了解正則表達式,那么您還可以執行以下操作:

trimws(paste0(string, collapse = ""), white = ",")%>%
  reticulate::py_eval()%>%
  map_df(~setNames(.x, c(c("Person1", "Person2", "date"))))

      # A tibble: 5 x 3
    Person1           Person 2         date
  <chr>             <chr>             <int>
1 Alin Deutsch      Mary F. Fernandez  1998
2 Alin Deutsch      Daniela Florescu   1998
3 Alin Deutsch      Alon Y. Levy       1998
4 Alin Deutsch      Dan Suciu          1998
5 Mary F. Fernandez Daniela Florescu   1998

string <- c("[\"Alin Deutsch\", \"Mary F. Fernandez\", 1998],", "[\"Alin Deutsch\", \"Daniela Florescu\", 1998],", 
"[\"Alin Deutsch\", \"Alon Y. Levy\", 1998],", "[\"Alin Deutsch\", \"Dan Suciu\", 1998],", 
"[\"Mary F. Fernandez\", \"Daniela Florescu\", 1998],")

暫無
暫無

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

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