ltm theta estimation

Hi, and welcome!

A minimum working example, called a reprex will attract more and better answers.

library(ltm)
#> Loading required package: MASS
#> Loading required package: msm
#> Loading required package: polycor
# example from help(factor.scores)
fit <- rasch(LSAT)
f_scores <- factor.scores(fit) # Empirical Bayes
# f_scores is NOT a data frame
class(f_scores)
#> [1] "fscores"
# show the structure
str(f_scores)
#> List of 6
#>  $ score.dat:'data.frame':   30 obs. of  9 variables:
#>   ..$ Item 1: num [1:30] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ Item 2: num [1:30] 0 0 0 0 0 0 0 0 1 1 ...
#>   ..$ Item 3: num [1:30] 0 0 0 0 1 1 1 1 0 0 ...
#>   ..$ Item 4: num [1:30] 0 0 1 1 0 0 1 1 0 0 ...
#>   ..$ Item 5: num [1:30] 0 1 0 1 0 1 0 1 0 1 ...
#>   ..$ Obs   : num [1:30] 3 6 2 11 1 1 3 4 1 8 ...
#>   ..$ Exp   : num [1:30] 2.364 5.468 2.474 8.249 0.852 ...
#>   ..$ z1    : num [1:30] -1.91 -1.439 -1.439 -0.959 -1.439 ...
#>   ..$ se.z1 : num [1:30] 0.79 0.793 0.793 0.801 0.793 ...
#>  $ method   : chr "EB"
#>  $ B        : num 5
#>  $ call     : language rasch(data = LSAT)
#>  $ resp.pats: logi FALSE
#>  $ coef     : num [1:5, 1:2] -3.615 -1.322 -0.318 -1.73 -2.78 ...
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..$ : chr [1:5] "Item 1" "Item 2" "Item 3" "Item 4" ...
#>   .. ..$ : chr [1:2] "Dffclt" "Dscrmn"
#>  - attr(*, "class")= chr "fscores"
# now we know how to call z1
f_scores$score.dat$z1
#>  [1] -1.91035438 -1.43850427 -1.43850427 -0.95942992 -1.43850427 -0.95942992
#>  [7] -0.95942992 -0.46601739 -1.43850427 -0.95942992 -0.46601739 -0.46601739
#> [13] -0.46601739  0.04900961 -1.43850427 -0.95942992 -0.95942992 -0.46601739
#> [19] -0.95942992 -0.46601739 -0.46601739  0.04900960 -0.95942992 -0.46601739
#> [25] -0.46601739  0.04900961 -0.46601739  0.04900960  0.04900961  0.59301137