It appears that at the bottom of the nesting, so to speak, you have a character 
matrix.
That is, the contents of the [[1]][[1]][[1]] element is a character matrix 
that, according to the row and column labels, has 4 rows and 5 columns.
However, the matrix itself, as printed, has, apparently, 4 column in row one, 
not 5 -- and five quote marks in row 4, so the number of columns is ambiguous 
(quote marks have to be balanced).

None the less, assuming you really do have character matrices that you're 
trying to modify, I'd be inclined to take a brute force approach.

I would also use for() loops instead of lapply(), because the code will be 
easier to follow.

Do you know, or can you assume, the maximum depth of nesting? Let's say it's 
three.

Here's an outline. I can't test it without an actual object to work on, and it 
probably has some details wrong. My intent is to present the concept.
(I believe I have the 'next' statements in the right place...)

for (i1 in length(FF)) {
  ## the "1" in "ff1" means first level of nesting, not first element of the 
list
  ff1 <- FF[[i1]]

  if ( !is.list(ff1) ) {
     ## the current element is not nested list
     {apply the function that removes the appropriate rows}
      ## this 'next' statement is supposed to move us to the 2nd element of FF
     next
  } else {
    ## the current element (of FF) is a list, therefore, have to loop through 
its elements

  for (i2 in length(ff1)) {
     ff2 <- ff1[[i2]]

     if ( !is.list(ff2) ) {
        ## the current element is not a nested list
        {apply the removal function}
        next
        } else {
        ## the current element is a nested list
       for (i3 in length(ff2) {
      ## if I've kept track correctly, we're now looking at the third level 
down of nesting,
      ## and if that's the max depth, we don't have to go any further

---- etc, and close all the loops ---


This brute force approach consists of nested for() loops.
The outer loop is for the top level list.
The next nested loop is for the second level lists, within each element of the 
top level
The next nested loop is for the third level lists, within each second level 
element
Since not all elements are nested to the same depth, it has to be noticed when 
a non-list element is reached. That element gets modified and that level is 
done; move up to the previous level and continue to its next element.
At least, that's an approach that I think can work, but getting all the details 
correct will take some work.

--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
Lab cell 925-724-7509
 
 

On 11/2/18, 8:00 AM, "R-help on behalf of Ek Esawi" 
<r-help-boun...@r-project.org on behalf of esaw...@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
    
    ______________________________________________
    R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
    https://stat.ethz.ch/mailman/listinfo/r-help
    PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
    and provide commented, minimal, self-contained, reproducible code.
    

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to