![](/img/trans.png)
[英]R text mining: Create document term matrix from dataframe, convert to dataframe, retain columns from original 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.