Обзор проекта:
Я работаю над проектом извлечения документов, использующим библиотеку docxtractr для извлечения таблиц слов из нескольких файлов и превращения их во фрейм данных.Ниже приведен код для конкретной таблицы, 6-й таблицы.
Из-за нескольких файлов я использую lapply для итерации каждого из них и выполнения задач манипуляции с фреймами данных.Причина, по которой во фрейме данных есть дополнительный столбец, заключается в том, что в таблице Word есть скрытые значения для расчетов.Эти таблицы раньше были связаны с большим и сложным файлом макроса Excel.
Мой код
library("docxtractr")
sourcesSummary <- lapply(files, function(x){
doc <- read_docx(x)
kingsTbls <- docx_extract_all_tbls(doc)
sources <- docx_extract_tbl(doc, 6, header = FALSE)
sources <- data.frame(sources)
# The below two lines are the issue #
sources[9,3:4] <- sources[9,2:3]
sources[24,3:4] <- sources[24,2:3]
})
`
Данные по умолчаниюКадр
V1 V2 V3 V4
1 SOURCES OF FUNDS AMOUNT PER UNIT <NA>
2 Proposed A Loan 87 $7,208,000.00 $82,851
3 Proposed B Loan $0.00 $ 0
4 Investor Equity $1,948,362.00 $22,395
5 Operating Partner Equity $0.00 $ 0
6 Other $0.00 $ 0
7 Other $0.00 $ 0
8 Other $0.00 $ 0
9 TOTAL SOURCE OF FUNDS $9,156,362 $105,246 <NA>
10 <NA> <NA> <NA>
11 USES OF FUNDS AMOUNT PER UNIT <NA>
12 Existing Mortgage(s) $0 $ 0
13 Purchase Price $9,011,000 $103,575
14 Origination Fees $54,060 $ 621
15 FM application Fee $7,208 $ 83
16 Investor Fees $0.00 $ 0
17 Closing Costs $0.00 $ 0
18 Other (Yield Maintenance) $0 $ 0
19 Capital Improvements $39,650.00 $ 456
20 Processing Fee $3,000.00 $ 34
21 Third Party $11,000.00 $ 126
22 Legal $12,500.00 $ 144
23 Repair Escrow (Funded) $0.00 $ 0
24 TOTAL USE OF FUNDS $9,138,418 $105,039 <NA>
25 <NA> <NA> <NA>
26 CASH OUT/(CASH IN) 132 $17,944 $ 207
Проблема:
Проблема, которая возникает у меня, связана с перемещением / сдвигом значений в кадре данных.Я успешно сделал это в консоли, однако, когда я запускаю тот же код в lapply , он не выполняется должным образом.
Я пытаюсь сместить значения в строках 9 и 24 вправо на один столбец.Внутри консоли для определенной тестовой переменной приведенный ниже код работает нормально, однако это не так, когда я запускаю lapply по всем моим файлам.
Код проблемы
sources[9,3:4] <- sources[9,2:3]
sources[24,3:4] <- sources[24,2:3]
Я также пытался использовать drop = FALSE
в скобках, но это тоже не работает.
Токовый выход с lapply
V2 V3
24 $9,138,418 $105,039
Требуемый выход
Обратите внимание, что строки 9 и 24 изменились.Когда я запускаю свой код в консоли в определенном фрейме данных, это - результат, опять же, проблема в том, что проблема возникает.После этого я собираюсь удалить также 2-й столбец и строки NA.
V1 V2 V3 V4
1 SOURCES OF FUNDS AMOUNT PER UNIT <NA>
2 Proposed A Loan 87 $7,208,000.00 $82,851
3 Proposed B Loan $0.00 $ 0
4 Investor Equity $1,948,362.00 $22,395
5 Operating Partner Equity $0.00 $ 0
6 Other $0.00 $ 0
7 Other $0.00 $ 0
8 Other $0.00 $ 0
9 TOTAL SOURCE OF FUNDS $9,156,362 $105,246
10 <NA> <NA> <NA>
11 USES OF FUNDS AMOUNT PER UNIT <NA>
12 Existing Mortgage(s) $0 $ 0
13 Purchase Price $9,011,000 $103,575
14 Origination Fees $54,060 $ 621
15 FM application Fee $7,208 $ 83
16 Investor Fees $0.00 $ 0
17 Closing Costs $0.00 $ 0
18 Other (Yield Maintenance) $0 $ 0
19 Capital Improvements $39,650.00 $ 456
20 Processing Fee $3,000.00 $ 34
21 Third Party $11,000.00 $ 126
22 Legal $12,500.00 $ 144
23 Repair Escrow (Funded) $0.00 $ 0
24 TOTAL USE OF FUNDS $9,138,418 $105,039
25 <NA> <NA> <NA>
26 CASH OUT/(CASH IN) 132 $17,944 $ 207
Заранее благодарен за ваш вклад!