Строки в списке имеют разную длину - PullRequest
0 голосов
/ 05 августа 2020

Я прочитал таблицу из pdf, и он создал список из 9 строк. Строки имеют разную длину символов, поэтому я не могу преобразовать их в фрейм данных. В строке [[1]] «Регион» и в строке [[6]] «Муниципальный» можно удалить обе, и все строки будут состоять из 6 символов. Объект - stats_lines и представляет собой список из [8] строк.

[[1]] [1] «Додома» «Регион» «450305» «376924» «83.7» «92.0» «8.0»

[[2]] [1] «Кондоа» «55990» «50197» «89,7» «93,0» «7,0»

[[3]] [1] «Mpwapwa» » 66275 «59670» «90,0» «93,8» «6,2»

[[4]] [1] «Kongwa» «61907» «56497» «91,3» «91,7» «8,3»

[[5]] [1] «Чамвино» «73807» «68162» «92,4» «94,4» «5,6»

[[6]] [1] «Додома» «Муниципальный» «92978 «« 49965 »« 53,7 »« 73,3 »« 26,7 »

[[7]] [1]« Bahi »« 49287 »« 45884 »« 93,1 »« 100,0 »« Н / Д »

[[8]] [1] «Чемба» «50061» «46549» «93,0» «98,0» «2,0»

1 Ответ

0 голосов
/ 06 августа 2020

Вы можете сделать это с помощью grepl, чтобы определить элементы, которые вы хотите удалить, а затем использовать lapply для итерации по списку, разбивая каждый элемент на подмножества на основе результатов grepl.

lapply(my_list function(x) x[!grepl("Region|Municipal", x)])
[[1]]
[1] "Dodoma" "450305" "376924" "83.7"   "92.0"   "8.0"   

[[2]]
[1] "Kondoa" "55990"  "50197"  "89.7"   "93.0"   "7.0"   
    
[[3]]
[1] "Mpwapwa" "66275"   "59670"   "90.0"    "93.8"    "6.2"    

[[4]]
[1] "Kongwa" "61907"  "56497"  "91.3"   "91.7"   "8.3"   

[[5]]
[1] "Chamwino" "73807"    "68162"    "92.4"     "94.4"     "5.6"     

[[6]] 
[1] "Dodoma" "92978"  "49965"  "53.7"   "73.3"   "26.7"  

[[7]]  
[1] "Bahi"  "49287" "45884" "93.1"  "100.0" "N/A"  

[[8]]
[1] "Chemba" "50061"  "46549"  "93.0"   "98.0"   "2.0" 

Функция str_detect из пакета stringr достигает того же результата с немного другим синтаксисом.

library(stringr)
lapply(my_list, function(x) x[!str_detect(x, "Region|Municipal")])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...