[R] Remove specific rows from nested list of matrices

Ek Esawi e@@wiek @ending from gm@il@com
Thu Nov 8 17:14:51 CET 2018


Thank you all, Bert, Jeff, Bill an Don. I realized I made a silly
mistake in list indexing. Once I saw Bills’ suggestion and was able to
wrap my head around indexing recursive lists, I resolved the problem.
For future readers, here is the answers, even though the question may
not have been clear. I tried Don’s idea and it worked too.

 To filter out rows that start with an empty (i.e. start with numbers,
in this case) string, I used Bill’s suggestion.
G <- lapply(FF, function(x) lapply(x, function (y) lapply(y,
function(z)   z[grepl("^[0-9][0-9]/",z[,1]),])))
S1 <-"\\sÂ.*\\s|^[0-9]x.*|.*[P-p]oints.*|.*\\sto\\s.*"
To remove some unwanted entries, I used this formula.
F <- lapply(G, function(x) lapply(x, function (y) lapply(y,
function(z) gsub(S1,"",z))))

Thanks again--EK
On Fri, Nov 2, 2018 at 11:00 AM Ek Esawi <esawiek using gmail.com> wrote:
>
> Hi All,
>
> I have a list that is made up of nested lists, as shown below. I want
> to remove all rows in each sub-list that start with an empty space,
> that’s the first entry of a row is blank; for example, on
> [[1]][[1]][[1]] Remove row 4,on [[1]][[1]][[3]] remove row 5, on
> [[1]][[2]][[1]] remove row 6, etc.. All rows start with 2 digits/ 2
> digits. My formula works on individual sublist but not the whole
> list.. I know my indexing is wrong, but don’t know how to fix it.
>
>
> > FF
>
> [[1]]
> [[1]][[1]]
> [[1]][[1]][[1]]
> [,1]    [,2]   [,3]    [,4] [,5]
> [1,] "30/20"   "AAAAAAAA" “    “   "-89"
> [2,] "02/20"   "AAAAAAAA” “    “   "-98"
> [3,] "02/20"   “AAAAAAA” “    “   "-84"
> [4,] “  “ “  “   “
> [[1]][[1]][[2]]
> [,1]    [,2]
> [1,] "02/23" “AAAAAAAA” : 29" “
> [2,] "02/23" “AAAAAAAA” ." “
> [3,] "02/23" “AAAAAAAA” " “
> [4,] "02/23" “AAAAAAAA” "
> [[1]][[1]][[3]]
> [,1]    [,2]    [,3] [,4] [,5] [,6] [,7]
> [1,] "01/09" “AAAAAAAA"    “   “   “   "53"
> [2,] "01/09" “AAAAAAAA” "   “   “   “   "403"
> [3,] "01/09" “AAAAAAAA” "   “   “   “   "83"
> [4,] "01/09" “AAAAAAAA” "   “   “   “   "783"
> [5,] “  “  “AAAAAAAA”  3042742181"   “   “   “   “
> [[1]][[2]]
> [[1]][[2]][[1]]
> [,1]  [,2] [,3] [,4] [,5]
> [1,] “    “   “   “   “AAAAAAAA” "
> [2,] "Standard Purchases"  “   “   “   "
> [3,] "24/90 "AAAAAAAA” “   "243"  "
> [4,] "24/90 "AAAAAAAA” "   "143"  "
> [5,] "24/91 "AAAAAAAA” " “   "143" “
> [6,] “    “   “   “   "792"
> [[1]][[2]][[2]]
> [,1]    [,2]
> [1,] "02/23" “AAAAAAAA”: 31" “
> [2,] "02/23" “AAAAAAAA”." “
> [3,] "02/23" “AAAAAAAA” " “
> [4,] "02/23" “AAAAAAAA”
> [5,] "02/23" “AAAAAAAA”
> [6,] "02/23" “AAAAAAAA” 20"
> [7,] "02/23" “AAAAAAAA”  “
> [8,] "02/23" “AAAAAAAA” "33"
> [[1]][[3]]
> [[1]][[3]][[1]]
> [,1]    [,2]
> [1,] "02/23" “AAAAAAAA”: 28" “
> [2,] "02/23" “AAAAAAAA”." “
> [3,] "02/23" “AAAAAAAA” " “
> [4,] "02/23" “AAAAAAAA” "
> [[1]][[3]][[2]]
> [,1]    [,2]    [,3]    [,4] [,5] [,6] [,7]    [,8]    [,9]
> [1,] "02/23" “AAAAAAAA” " “   “   "53" "
> [2,] "02/24" “AAAAAAAA” " “   “   "
> [3,] “  “  “  “   “   “   “  “  "1,241"
> [4,] "02/24" "AAAAAAAA”  “   "33”
>
> My Formula,:
>
> G <- lapply(FF, function(x) lapply(x, function (y) lapply(y,
> function(z)  z[grepl("^[0-9][0-9]/",z[,1]),])))
>
> The error: Error in z[, 1] : incorrect number of dimensions
>
>
>
> Thanks in advance--EK



More information about the R-help mailing list