get_valL {lazy.tools} | R Documentation |
Get Values from a List Consisting of Data Frames
get_valL(L, s1 = NULL, s2 = NULL, s3 = NULL, simplify = 1)
put_valL(L, s1 = NULL, s2 = NULL, s3 = NULL) <- value
L |
A list of data frames |
s1 |
Vector consisting of the subscripts for the 1st dimension |
s2 |
Vector consisting of the subscripts for the 2nd dimension |
s3 |
Vector consisting of the subscripts for the 3rd dimension |
simplify |
= 0 to leave the result of get_valL unsimplified (list) |
value |
The value to be assigned. Either a vector or a matrix. |
It is assumed that L
is a list consisting of several data frames.
and the third subscript, s3
is for the list.
Therefore, get_valL(L,,,s3)
with scalar s3 is
equivalent to L[[s3]]
and get_valL(L,,,2:3)
returns the 2nd and the 3rd data frames
in a list.
s1,s2,s3
can be a set of vectors consisting of row/col/list names.
When some of the subscripts are out of range, only the valid ones
will be used.
The result will be simplified to a matrix or vector if possible.
When length(s1)==1
, the result will be
a length(L)
x ncol(L[[1]])
matrix.
When length(s2)==1
, the result will be
a ncol(L[[1]])
x length(L)
matrix.
get_valL(L, s1,s2,s3)
returns
(s1,s2)
element(s) of the s3-th data frame(s).
put_valL(L, s1,s2,s3) <- value
replaces the s1,s2
element(s) of the data frame(s) specified by s3
with value
.
L0 <- list( A=data.frame(demomat(3,2)*10+1)
, B=data.frame(demomat(4,3)*10+2)
, C=data.frame(demomat(5,4)*10+3)
)
L <- L0
get_valL( L, ,,2 ) # should be equal to get_valL( L, ,,"B" )
get_valL( L, 2, ) # should be equal to get_valL( L, "r2",, )
get_valL( L, ,2 ) # should be equal to get_valL( L, , "c2", )
get_valL( L, c(1,3),,3:2 )
get_valL( L, c(1,3),, c("B","A") )
L <- L0; put_valL(L, 1:2,1:2,3) <- 0; Print(L)
L <- L0; put_valL(L, 1:2,1:2,c("C","A")) <- 0; Print(L)
L <- L0; put_valL(L, 3:5,2:4,) <- 0; Print(L)
L <- L0; put_valL(L, 3:5,2:4,2) <- 0; Print(L)
L <- L0; put_valL(L, 1:4,1,2:3) <- 1:4; Print(L)
L <- L0; put_valL(L, 1:2,2:3,2:3) <- demomat(2,2)*100; Print(L)
# effect of simplify
L0 <- list( A=data.frame(demomat(3,4)*10+1)
, B=data.frame(demomat(3,4)*10+2)
, C=data.frame(demomat(3,4)*10+3)
)
L <- L0
get_valL( L, ,,2 )
get_valL( L, ,,2, simplify=0 )
get_valL( L, 2, )
get_valL( L, 2,, simplify=0 )
get_valL( L, ,2 )
get_valL( L, ,2, simplify=0 )
# When the selected elements are scalars, the result is a column vector.
get_valL(L0,1:2,1) # matrix
get_valL(L0,1,1) # col vector
get_valL(L0,1,1:2) # matrix
# mixed type variables in a data frame
A <- data.frame(demomat(3,4)*10+1)
A[,2] <- paste("c",as.character(A[,2]),sep="")
B <- data.frame(demomat(3,4)*10+2)
B[,2] <- paste("c",as.character(B[,2]),sep="")
C <- data.frame(demomat(3,4)*10+3)
C[,2] <- paste("c",as.character(C[,2]),sep="")
L <- list(A=A,B=B,C=C)
get_valL( L, 2, )
get_valL( L, , 2 )