Using R, I'm trying to summarize and count occurrences of a dataframe whose contents is other dataframes. It's multi-dimensional, in other words, and the number of items varies for each element in the dataframe. I'm not very experienced, so I hope I write this correctly:
data is at:
<https://pastebin.com/1f5bAi2s>
I'd like to count the times each resource occurs in the data, for example "Xbox One, NM2" or "PS4, NM2"
Thank in advance for the help.
It's not clear what you want from this nested list. Here's the structure returned by str:
str(dat)
'data.frame': 6 obs. of 9 variables:
$ _class : chr "allocation" "allocation" "allocation" "allocation" ...
$ name : chr "CK-76303" "CK-77297" "CK-77432" "CK-70045" ...
$ invoices :List of 6
..$ :'data.frame': 0 obs. of 0 variables
..$ :'data.frame': 0 obs. of 0 variables
..$ :'data.frame': 0 obs. of 0 variables
..$ :'data.frame': 0 obs. of 0 variables
..$ :'data.frame': 0 obs. of 0 variables
..$ :'data.frame': 0 obs. of 0 variables
$ items :List of 6
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ resource:'data.frame': 1 obs. of 4 variables:
.. .. ..$ _class : chr "resource"
.. .. ..$ oid : int 58739185
.. .. ..$ name : chr "Studio 1"
.. .. ..$ barcode: logi NA
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ resource:'data.frame': 1 obs. of 4 variables:
.. .. ..$ _class : chr "resource"
.. .. ..$ oid : int 58739172
.. .. ..$ name : chr "Studio 1"
.. .. ..$ barcode: logi NA
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ resource:'data.frame': 1 obs. of 4 variables:
.. .. ..$ _class : chr "resource"
.. .. ..$ oid : int 1872017
.. .. ..$ name : chr "Drill Bit "
.. .. ..$ barcode: chr "1721.019"
..$ :'data.frame': 9 obs. of 1 variable:
.. ..$ resource: logi NA NA NA NA NA NA ...
..$ :'data.frame': 19 obs. of 1 variable:
.. ..$ resource:'data.frame': 19 obs. of 4 variables:
.. .. ..$ _class : chr "resource" "resource" "resource" "resource" ...
.. .. ..$ oid : int 61437789 61437748 61437699 61437651 58694528 58694527 58694526 58694525 58694524 58694523 ...
.. .. ..$ name : chr "Xbox One, NM2 " "Xbox One, NM2 " "PS4, NM2 " "PS4, NM2 " ...
.. .. ..$ barcode: logi NA NA NA NA NA NA ...
..$ :'data.frame': 1 obs. of 1 variable:
.. ..$ resource:'data.frame': 1 obs. of 4 variables:
.. .. ..$ _class : chr "resource"
.. .. ..$ oid : int 41390788
.. .. ..$ name : chr "Model Shop"
.. .. ..$ barcode: chr "IND2.1.004"
$ allocationContentsSummary:'data.frame': 6 obs. of 2 variables:
..$ groups:List of 6
.. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. ..$ label: chr "Reservation Canceled"
.. .. ..$ items:List of 1
.. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. ..$ label : chr " Studios 20"
.. .. .. .. ..$ subitems:List of 1
.. .. .. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "Studio 1"
.. .. .. .. .. .. ..$ due : logi NA
.. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. ..$ label: chr "Reservation Canceled"
.. .. ..$ items:List of 1
.. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. ..$ label : chr "Studios 20"
.. .. .. .. ..$ subitems:List of 1
.. .. .. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "Studio 1"
.. .. .. .. .. .. ..$ due : logi NA
.. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. ..$ label: chr "Returned"
.. .. ..$ items:List of 1
.. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. ..$ label : chr "Drill Bits "
.. .. .. .. ..$ subitems:List of 1
.. .. .. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "Drill Bit_High "
.. .. .. .. .. .. ..$ due : logi NA
.. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. ..$ label: chr "Reservation Canceled"
.. .. ..$ items:List of 1
.. .. .. ..$ :'data.frame': 2 obs. of 2 variables:
.. .. .. .. ..$ label : chr "Music Classrom 110" "Music Studio 113 Vocal Tracking"
.. .. .. .. ..$ subitems:List of 2
.. .. .. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "8 by type"
.. .. .. .. .. .. ..$ due : logi NA
.. .. .. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "1 by type"
.. .. .. .. .. .. ..$ due : logi NA
.. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. ..$ label: chr "Reservation Canceled"
.. .. ..$ items:List of 1
.. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. ..$ label : chr "eSpiLounge"
.. .. .. .. ..$ subitems:List of 1
.. .. .. .. .. ..$ :'data.frame': 19 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "Nintendo, NM2 " "Nintendo, NM2 " "PC-01GAM" "PC-02GAM" ...
.. .. .. .. .. .. ..$ due : logi NA NA NA NA NA NA ...
.. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. ..$ label: chr "Reservation Canceled"
.. .. ..$ items:List of 1
.. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. ..$ label : chr "ModelS "
.. .. .. .. ..$ subitems:List of 1
.. .. .. .. .. ..$ :'data.frame': 1 obs. of 2 variables:
.. .. .. .. .. .. ..$ label: chr "ModelS_04"
.. .. .. .. .. .. ..$ due : logi NA
..$ lock : logi NA NA NA NA NA NA
$ itemCount : int 1 1 1 9 19 1
$ patronAcademicLevel : chr NA "BFA/BFA-PH" "BFA/BFA-JEM" "10" ...
$ realEndTime : chr NA NA "2022-05-11T12:21:00.000000-07:00" NA ...
$ realStartTime : chr NA NA "2022-05-11T08:58:00.000000-07:00" NA ...
Perhaps you want the items in the "items" node: Within each of those 6 dataframes there are character values that are each in the [[1]]$name leaves of those enclosing dataframe structures:
sapply(dat$items, function(x) x[[1]]['name'])
$name
[1] "Studio 1"
$name
[1] "Studio 1"
$name
[1] "Drill Bit "
[[4]]
[1] NA
$name
[1] "Xbox One, NM2 " "Xbox One, NM2 " "PS4, NM2 " "PS4, NM2 " "PC, NM2" "PC, NM2"
[7] "PC, NM2" "PC, NM2-" "PC, NM2" "Nintendo, NM2 " "Nintendo, NM2 "
$name
[1] "Model Shop"
Related
I am trying to save unit tests result generated by "testthat" package result
How to save testthat result which is "testthat_result" object into a file(txt or csv file)
library(testthat)
result<-test_file('utils_test.R', reporter = "minimal")
outfile<-file("output.txt")
writeLines(c(result), outfile)
close(outfile)
But this is not working
The problem is your result object, which is a list.
library(testthat)
path <- testthat_example("success")
result<-test_file(path, reporter = "minimal")
str(result)
You need to convert it to a character stream before saving it using writeLines.
str(result)
List of 4
$ :List of 7
..$ file : chr "test-success.R"
..$ context: NULL
..$ test : chr "one plus one is two"
..$ user : num 0.006
..$ system : num 0
..$ real : num 0.006
..$ results:List of 1
.. ..$ :List of 6
.. .. ..$ message : chr "1 + 1 not equal to 2.\nEqual"
.. .. ..$ srcref : 'srcref' int [1:8] 2 3 2 24 3 24 2 2
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5589bd9e6a20>
.. .. ..$ trace : NULL
.. .. ..$ start_frame: int 31
.. .. ..$ end_frame : num 32
.. .. ..$ test : chr "one plus one is two"
.. .. ..- attr(*, "class")= chr [1:3] "expectation_success" "expectation" "condition"
$ :List of 7
..$ file : chr "test-success.R"
..$ context: NULL
..$ test : chr "you can skip tests if needed"
..$ user : num 0.003
..$ system : num 0
..$ real : num 0.003
..$ results:List of 1
.. ..$ :List of 6
.. .. ..$ message : chr "Reason: This tests hasn't been written yet"
.. .. ..$ srcref : 'srcref' int [1:8] 6 3 6 44 3 44 6 6
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5589bd9e6a20>
.. .. ..$ trace : NULL
.. .. ..$ start_frame: int 31
.. .. ..$ end_frame : num 31
.. .. ..$ test : chr "you can skip tests if needed"
.. .. ..- attr(*, "class")= chr [1:3] "expectation_skip" "expectation" "condition"
$ :List of 7
..$ file : chr "test-success.R"
..$ context: NULL
..$ test : chr "some tests have warnings"
..$ user : num 0.006
..$ system : num 0
..$ real : num 0.007
..$ results:List of 2
.. ..$ :List of 6
.. .. ..$ message : chr "NaNs produced"
.. .. ..$ srcref : 'srcref' int [1:8] 10 3 10 28 3 28 10 10
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5589bd9e6a20>
.. .. ..$ trace : NULL
.. .. ..$ start_frame: int 31
.. .. ..$ end_frame : num 33
.. .. ..$ test : chr "some tests have warnings"
.. .. ..- attr(*, "class")= chr [1:3] "expectation_warning" "expectation" "condition"
.. ..$ :List of 6
.. .. ..$ message : chr "log(-1) not equal to NaN.\nEqual"
.. .. ..$ srcref : 'srcref' int [1:8] 10 3 10 28 3 28 10 10
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5589bd9e6a20>
.. .. ..$ trace : NULL
.. .. ..$ start_frame: int 31
.. .. ..$ end_frame : num 32
.. .. ..$ test : chr "some tests have warnings"
.. .. ..- attr(*, "class")= chr [1:3] "expectation_success" "expectation" "condition"
$ :List of 7
..$ file : chr "test-success.R"
..$ context: NULL
..$ test : chr "some more successes just to pad things out"
..$ user : num 0.003
..$ system : num 0
..$ real : num 0.003
..$ results:List of 2
.. ..$ :List of 6
.. .. ..$ message : chr "TRUE isn't true."
.. .. ..$ srcref : 'srcref' int [1:8] 14 3 14 19 3 19 14 14
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5589bd9e6a20>
.. .. ..$ trace : NULL
.. .. ..$ start_frame: int 31
.. .. ..$ end_frame : num 32
.. .. ..$ test : chr "some more successes just to pad things out"
.. .. ..- attr(*, "class")= chr [1:3] "expectation_success" "expectation" "condition"
.. ..$ :List of 6
.. .. ..$ message : chr "FALSE isn't false."
.. .. ..$ srcref : 'srcref' int [1:8] 15 3 15 21 3 21 15 15
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x5589bd9e6a20>
.. .. ..$ trace : NULL
.. .. ..$ start_frame: int 31
.. .. ..$ end_frame : num 32
.. .. ..$ test : chr "some more successes just to pad things out"
.. .. ..- attr(*, "class")= chr [1:3] "expectation_success" "expectation" "condition"
- attr(*, "class")= chr "testthat_results"
i'm current construct product recommendation using R recommenderlab, after compute AR recommender, i'm hoping to understand the association rules, but i couldn't found any why to extract the complete association rules from the recommender object.
Below is the sample dataset
m <- matrix(sample(c(0,1), 50, replace=TRUE), nrow=5, ncol=10,
dimnames=list(users=paste("u", 1:5, sep=''),
items=paste("i", 1:10, sep='')))
Convert matrix into binaryRatingMatrix
b <- as(m, "binaryRatingMatrix")
create a user-based CF recommender using training data
r <- Recommender(getData(scheme, "train"), "AR")
Looking into the AR recommender object r#model$rule_base i found "rule_base"
Formal class 'Recommender' [package "recommenderlab"] with 5 slots
..# method : chr "AR"
..# dataType: chr "binaryRatingMatrix"
..# ntrain : int 5
..# model :List of 9
.. ..$ description : chr "AR: rule base"
.. ..$ rule_base :Formal class 'rules' [package "arules"] with 4 slots
.. .. .. ..# lhs :Formal class 'itemMatrix' [package "arules"] with 3 slots
.. .. .. .. .. ..# data :Formal class 'ngCMatrix' [package "Matrix"] with 5 slots
.. .. .. .. .. .. .. ..# i : int [1:145] 1 1 1 1 2 0 0 0 5 5 ...
.. .. .. .. .. .. .. ..# p : int [1:80] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. .. .. .. .. ..# Dim : int [1:2] 10 79
.. .. .. .. .. .. .. ..# Dimnames:List of 2
.. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. ..# factors : list()
.. .. .. .. .. ..# itemInfo :'data.frame': 10 obs. of 1 variable:
.. .. .. .. .. .. ..$ labels: chr [1:10] "i1" "i2" "i3" "i4" ...
.. .. .. .. .. ..# itemsetInfo:'data.frame': 0 obs. of 0 variables
.. .. .. ..# rhs :Formal class 'itemMatrix' [package "arules"] with 3 slots
.. .. .. .. .. ..# data :Formal class 'ngCMatrix' [package "Matrix"] with 5 slots
.. .. .. .. .. .. .. ..# i : int [1:79] 6 4 9 3 8 4 9 3 6 3 ...
.. .. .. .. .. .. .. ..# p : int [1:80] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. .. .. .. .. ..# Dim : int [1:2] 10 79
.. .. .. .. .. .. .. ..# Dimnames:List of 2
.. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. .. ..$ : NULL
.. .. .. .. .. .. .. ..# factors : list()
.. .. .. .. .. ..# itemInfo :'data.frame': 10 obs. of 1 variable:
.. .. .. .. .. .. ..$ labels: chr [1:10] "i1" "i2" "i3" "i4" ...
.. .. .. .. .. ..# itemsetInfo:'data.frame': 0 obs. of 0 variables
.. .. .. ..# quality:'data.frame': 79 obs. of 4 variables:
.. .. .. .. ..$ support : num [1:79] 0.2 0.2 0.2 0.2 0.4 0.4 0.4 0.4 0.4 0.4 ...
.. .. .. .. ..$ confidence: num [1:79] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. .. ..$ lift : num [1:79] 1.67 1.25 1.25 1.25 1.67 ...
.. .. .. .. ..$ count : num [1:79] 1 1 1 1 2 2 2 2 2 2 ...
.. .. .. ..# info :List of 4
.. .. .. .. ..$ data : symbol data
.. .. .. .. ..$ ntransactions: int 5
.. .. .. .. ..$ support : num 0.1
.. .. .. .. ..$ confidence : num 0.8
.. ..$ support : num 0.1
.. ..$ confidence : num 0.8
.. ..$ maxlen : num 3
.. ..$ sort_measure : chr "confidence"
.. ..$ sort_decreasing: logi TRUE
.. ..$ apriori_control:List of 1
.. .. ..$ verbose: logi FALSE
.. ..$ verbose : logi FALSE
..# predict :function (model, newdata, n = 10, data = NULL, type = c("topNList", "ratings", "ratingMatrix"), ...)
Question: how can i extract the association rules from recommender object as data frame?
Get association rules dataframe with columns (LHS, RHS, support, confidence, lift, count)
you can use
#Convert rules into data frame
rules3 = as(rules, "data.frame")
basically I am using a package that gives me a S4 object with many slots. these objects are easily accessible with s4obj#portfolio but then I need to extract FROM this slot a vector.
more specifically, the package is fPortfolio and the function is portfolioFrontier(). in the pdf associated is at page 19.
(http://postimg.org/image/62oa8z7dv/)
in the pdf attached to the package it is specfied that such slot is
"a list, containing parameter specifications for the portfolio:
weights a numeric vector specifying the portfolio weights,
targetReturn a numeric value specifying the target return, "
I want to carve out "weights" but nothing worked so far (errors include that object is not subsettable, $ doens't work [meaning s4obj#portfolio$weights doesn't work], etc)
code at work:
frontier=portfolioFrontier(as.timeSeries(elements))
frontier#portfolio
frontier#portfolio$weights
Error in frontier#portfolio$weights :
$ operator not defined for this S4 class
p.s.: i hope this isn't already answered elsewhere but I found nothing on this forum or the web for that matter
p.s.2 : str() yields
> str(frontier#portfolio)
Formal class 'fPFOLIOVAL' [package "fPortfolio"] with 2 slots
..# portfolio:List of 7
.. ..$ weights : num [1:49, 1:14] 0.0805 0.161 0.2415 0.322 0.4025 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : NULL
.. .. .. ..$ : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. ..$ covRiskBudgets : num [1:49, 1:14] -3.54e-05 -7.73e-05 -1.28e-04 -1.90e-04 -2.67e-04 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : NULL
.. .. .. ..$ : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. ..$ targetReturn : num [1:49, 1:2] -0.00171 -0.00154 -0.00136 -0.00119 -0.00101 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : NULL
.. .. .. ..$ : chr [1:2] "mean" "mu"
.. ..$ targetRisk : num [1:49, 1:4] 0.0394 0.0359 0.0325 0.029 0.0256 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : NULL
.. .. .. ..$ : chr [1:4] "Cov" "Sigma" "CVaR" "VaR"
.. ..$ targetAlpha : num 0.05
.. ..$ minriskPortfolio:Formal class 'fPORTFOLIO' [package "fPortfolio"] with 7 slots
.. .. .. ..# call : language minriskPortfolio(data = data, spec = spec, constraints = constraints)
.. .. .. ..# data :Formal class 'fPFOLIODATA' [package "fPortfolio"] with 3 slots
.. .. .. .. .. ..# data :List of 3
.. .. .. .. .. .. ..$ series :Time Series:
Name: object
Data Matrix:
Dimension: 240 14
Column Names: MNEU OBGVEUBR OBGVEUML OBCPEU OBGVIN OBCPNOEU OBGLHGYD OBPSEM AZEU AZUS AZPC AZEM AZRE ATCOMM
Row Names: ...
Positions:
Start:
End:
With:
Format: counts
FinCenter:
Units: MNEU OBGVEUBR OBGVEUML OBCPEU OBGVIN OBCPNOEU OBGLHGYD OBPSEM AZEU AZUS AZPC AZEM AZRE ATCOMM
Title: Signal Series Object
Documentation: Wed Mar 18 12:18:11 2015
.. .. .. .. .. .. ..$ nAssets: int 14
.. .. .. .. .. .. ..$ names : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# statistics:List of 5
.. .. .. .. .. .. ..$ mean : Named num [1:14] 0.000277 0.0011 0.003337 0.002433 0.001609 ...
.. .. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. ..$ Cov : num [1:14, 1:14] 2.57e-08 1.60e-07 1.39e-07 -7.50e-08 4.11e-07 ...
.. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. ..$ : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. .. .. ..$ : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. ..$ estimator: chr "covEstimator"
.. .. .. .. .. .. ..$ mu : Named num [1:14] 0.000277 0.0011 0.003337 0.002433 0.001609 ...
.. .. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. ..$ Sigma : num [1:14, 1:14] 2.57e-08 1.60e-07 1.39e-07 -7.50e-08 4.11e-07 ...
.. .. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. .. ..$ : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. .. .. ..$ : chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# tailRisk : list()
.. .. .. ..# spec :Formal class 'fPFOLIOSPEC' [package "fPortfolio"] with 5 slots
.. .. .. .. .. ..# model :List of 5
.. .. .. .. .. .. ..$ type : chr "MV"
.. .. .. .. .. .. ..$ optimize : chr "minRisk"
.. .. .. .. .. .. ..$ estimator: chr "covEstimator"
.. .. .. .. .. .. ..$ tailRisk : list()
.. .. .. .. .. .. ..$ params :List of 2
.. .. .. .. .. .. .. ..$ alpha: num 0.05
.. .. .. .. .. .. .. ..$ a : num 1
.. .. .. .. .. ..# portfolio:List of 6
.. .. .. .. .. .. ..$ weights : atomic [1:14] 0.999 0 0 0 0 ...
.. .. .. .. .. .. .. ..- attr(*, "invest")= num 1
.. .. .. .. .. .. ..$ targetRisk : num 0.000155
.. .. .. .. .. .. ..$ riskFreeRate : num 0
.. .. .. .. .. .. ..$ nFrontierPoints: num 50
.. .. .. .. .. .. ..$ status : num 0
.. .. .. .. .. .. ..$ targetReturn : Named num -1
.. .. .. .. .. .. .. ..- attr(*, "names")= chr ""
.. .. .. .. .. ..# optim :List of 5
.. .. .. .. .. .. ..$ solver : chr "solveRquadprog"
.. .. .. .. .. .. ..$ objective: chr [1:3] "portfolioObjective" "portfolioReturn" "portfolioRisk"
.. .. .. .. .. .. ..$ options :List of 1
.. .. .. .. .. .. .. ..$ meq: num 2
.. .. .. .. .. .. ..$ control : list()
.. .. .. .. .. .. ..$ trace : logi FALSE
.. .. .. .. .. ..# messages :List of 2
.. .. .. .. .. .. ..$ messages: logi FALSE
.. .. .. .. .. .. ..$ note : chr ""
.. .. .. .. .. ..# ampl :List of 5
.. .. .. .. .. .. ..$ ampl : logi FALSE
.. .. .. .. .. .. ..$ project : chr "ampl"
.. .. .. .. .. .. ..$ solver : chr "ipopt"
.. .. .. .. .. .. ..$ protocol: logi FALSE
.. .. .. .. .. .. ..$ trace : logi FALSE
.. .. .. ..# constraints:Formal class 'fPFOLIOCON' [package "fPortfolio"] with 16 slots
.. .. .. .. .. ..# stringConstraints : chr "LongOnly"
.. .. .. .. .. ..# minWConstraints : Named num [1:14] 0 0 0 0 0 0 0 0 0 0 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# maxWConstraints : Named num [1:14] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# eqsumWConstraints : num [1:2, 1:15] -1 -1 0.000277 -1 0.0011 ...
.. .. .. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. .. .. ..$ : chr [1:2] "Return" "Budget"
.. .. .. .. .. .. .. ..$ : chr [1:15] "ceq" "MNEU" "OBGVEUBR" "OBGVEUML" ...
.. .. .. .. .. ..# minsumWConstraints : logi [1, 1] NA
.. .. .. .. .. ..# maxsumWConstraints : logi [1, 1] NA
.. .. .. .. .. ..# minBConstraints : Named num [1:14] -Inf -Inf -Inf -Inf -Inf ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# maxBConstraints : Named num [1:14] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# listFConstraints : list()
.. .. .. .. .. ..# minFConstraints : num(0)
.. .. .. .. .. ..# maxFConstraints : num(0)
.. .. .. .. .. ..# minBuyinConstraints: Named num [1:14] 0 0 0 0 0 0 0 0 0 0 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# maxBuyinConstraints: Named num [1:14] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# nCardConstraints : int 14
.. .. .. .. .. ..# minCardConstraints : Named num [1:14] 0 0 0 0 0 0 0 0 0 0 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. ..# maxCardConstraints : Named num [1:14] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. ..# portfolio :Formal class 'fPFOLIOVAL' [package "fPortfolio"] with 2 slots
.. .. .. .. .. ..# portfolio:List of 6
.. .. .. .. .. .. ..$ weights : Named num [1:14] 0.999 0 0 0 0 ...
.. .. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. ..$ covRiskBudgets: Named num [1:14] 0.999 0 0 0 0 ...
.. .. .. .. .. .. .. ..- attr(*, "names")= chr [1:14] "MNEU" "OBGVEUBR" "OBGVEUML" "OBCPEU" ...
.. .. .. .. .. .. ..$ targetReturn : Named num [1:2] 0.000279 0.000279
.. .. .. .. .. .. .. ..- attr(*, "names")= chr [1:2] "mean" "mu"
.. .. .. .. .. .. ..$ targetRisk : Named num [1:4] 1.55e-04 1.55e-04 -1.22e-05 -3.15e-05
.. .. .. .. .. .. .. ..- attr(*, "names")= chr [1:4] "Cov" "Sigma" "CVaR" "VaR"
.. .. .. .. .. .. ..$ targetAlpha : num 0.05
.. .. .. .. .. .. ..$ status : num 0
.. .. .. .. .. ..# messages : list()
.. .. .. ..# title : chr "Minimum Variance Portfolio"
.. .. .. ..# description: chr "Wed Mar 18 12:18:11 2015 by user: dallaliberaf"
.. ..$ status : num 0
..# messages : list()
It really is just standard S4, so you need to pick element by element. Here is an example which I have actually wrapped in C++ as an RInside example:
suppressMessages(library(fPortfolio))
lppData <- 100 * LPP2005.RET[, 1:6]
ewSpec <- portfolioSpec()
nAssets <- ncol(lppData)
weightsvec <- c(0.5, rep(0.1, 5))
setWeights(ewSpec) <- weightsvec
ewPf <- feasiblePortfolio(data=lppData, spec=ewSpec, constraints="LongOnly")
print(ewPf)
vec <- getCovRiskBudgets(ewPf#portfolio)
Here, you simply read the str() output wrong and omitted a layer of #portfoio (Hint: you need two) when trying to get to weights:
R> ewPf#portfolio#portfolio$weights
SBI SPI SII LMI MPI ALT
0.5 0.1 0.1 0.1 0.1 0.1
R>
which are of course the same six values I gave it earlier in the example.
Edit: Your subsequent edits proves this. You have
> str(frontier#portfolio)
Formal class 'fPFOLIOVAL' [package "fPortfolio"] with 2 slots
..# portfolio:List of 7
.. ..$ weights : num [1:49, 1:14] 0.0805 0.161 0.2415 0.322 0.4025 ..
which is precisely the frontier#portfolio#portfolio$weights I show in my code (albeit applied to the variable named the way it is in your example).
I would like to extract some results from a lmermod object
require(lme4)
(fm1 <- lmer(Yield ~ 1|Batch, Dyestuff))
This produces
Linear mixed model fit by REML ['lmerMod']
Formula: Yield ~ 1 | Batch
Data: Dyestuff
REML criterion at convergence: 319.6543
Random effects:
Groups Name Std.Dev.
Batch (Intercept) 42.00
Residual 49.51
Number of obs: 30, groups: Batch, 6
Fixed Effects:
(Intercept)
1527
In particular, I would like to extract the standard devations of the 2 random effects, ie 42.00 and 49.51. I guess there may be a built-in method to do this, but I couldn't find it quickly so I thought I should be able to find it by using str(fm1), which produces this:
Formal class 'lmerMod' [package "lme4"] with 13 slots
..# resp :Reference class 'lmerResp' [package "lme4"] with 9 fields
.. ..$ Ptr :<externalptr>
.. ..$ mu : num [1:30] 1510 1510 1510 1510 1510 ...
.. ..$ offset : num [1:30] 0 0 0 0 0 0 0 0 0 0 ...
.. ..$ sqrtXwt: num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
.. ..$ sqrtrwt: num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
.. ..$ weights: num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
.. ..$ wtres : num [1:30] 35.1 -69.9 -69.9 10.1 70.1 ...
.. ..$ y : num [1:30] 1545 1440 1440 1520 1580 ...
.. ..$ REML : int 1
.. ..and 26 methods, of which 14 are possibly relevant:
.. .. allInfo, copy#envRefClass, initialize, initialize#lmResp,
.. .. initializePtr, initializePtr#lmResp, objective, ptr, ptr#lmResp,
.. .. setOffset, setResp, setWeights, updateMu, wrss
..# Gp : int [1:2] 0 6
..# call : language lmer(formula = Yield ~ 1 | Batch, data = Dyestuff)
..# frame :'data.frame': 30 obs. of 2 variables:
.. ..$ Yield: num [1:30] 1545 1440 1440 1520 1580 ...
.. ..$ Batch: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 2 2 2 2 2 ...
.. ..- attr(*, "terms")=Classes 'terms', 'formula' length 3 Yield ~ 1 + Batch
.. .. .. ..- attr(*, "variables")= language list(Yield, Batch)
.. .. .. ..- attr(*, "factors")= int [1:2, 1] 0 1
.. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. ..$ : chr [1:2] "Yield" "Batch"
.. .. .. .. .. ..$ : chr "Batch"
.. .. .. ..- attr(*, "term.labels")= chr "Batch"
.. .. .. ..- attr(*, "order")= int 1
.. .. .. ..- attr(*, "intercept")= int 1
.. .. .. ..- attr(*, "response")= int 1
.. .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
.. .. .. ..- attr(*, "predvars")= language list(Yield, Batch)
.. .. .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "factor"
.. .. .. .. ..- attr(*, "names")= chr [1:2] "Yield" "Batch"
.. .. .. ..- attr(*, "predvars.fixed")= language list(Yield)
.. ..- attr(*, "formula")=Class 'formula' length 3 Yield ~ 1 | Batch
.. .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv>
..# flist :List of 1
.. ..$ Batch: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 2 2 2 2 2 ...
.. ..- attr(*, "assign")= int 1
..# cnms :List of 1
.. ..$ Batch: chr "(Intercept)"
..# lower : num 0
..# theta : num 0.848
..# beta : num 1527
..# u : num [1:6] -20.755 0.461 33.669 -27.212 66.877 ...
..# devcomp:List of 2
.. ..$ cmp : Named num [1:10] 9.15 1.88 61495.41 9590.84 71086.25 ...
.. .. ..- attr(*, "names")= chr [1:10] "ldL2" "ldRX2" "wrss" "ussq" ...
.. ..$ dims: Named int [1:12] 30 30 1 29 1 6 1 1 0 1 ...
.. .. ..- attr(*, "names")= chr [1:12] "N" "n" "p" "nmp" ...
..# pp :Reference class 'merPredD' [package "lme4"] with 18 fields
.. ..$ Lambdat:Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
.. .. .. ..# i : int [1:6] 0 1 2 3 4 5
.. .. .. ..# p : int [1:7] 0 1 2 3 4 5 6
.. .. .. ..# Dim : int [1:2] 6 6
.. .. .. ..# Dimnames:List of 2
.. .. .. .. ..$ : NULL
.. .. .. .. ..$ : NULL
.. .. .. ..# x : num [1:6] 0.848 0.848 0.848 0.848 0.848 ...
.. .. .. ..# factors : list()
.. ..$ LamtUt :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
.. .. .. ..# i : int [1:30] 0 0 0 0 0 1 1 1 1 1 ...
.. .. .. ..# p : int [1:31] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. ..# Dim : int [1:2] 6 30
.. .. .. ..# Dimnames:List of 2
.. .. .. .. ..$ : NULL
.. .. .. .. ..$ : NULL
.. .. .. ..# x : num [1:30] 0.848 0.848 0.848 0.848 0.848 ...
.. .. .. ..# factors : list()
.. ..$ Lind : int [1:6] 1 1 1 1 1 1
.. ..$ Ptr :<externalptr>
.. ..$ RZX : num [1:6, 1] 1.98 1.98 1.98 1.98 1.98 ...
.. ..$ Ut :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
.. .. .. ..# i : int [1:30] 0 0 0 0 0 1 1 1 1 1 ...
.. .. .. ..# p : int [1:31] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. ..# Dim : int [1:2] 6 30
.. .. .. ..# Dimnames:List of 2
.. .. .. .. ..$ : chr [1:6] "A" "B" "C" "D" ...
.. .. .. .. ..$ : NULL
.. .. .. ..# x : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. ..# factors : list()
.. ..$ Utr : num [1:6] 6384 6481 6634 6354 6787 ...
.. ..$ V : num [1:30, 1] 1 1 1 1 1 1 1 1 1 1 ...
.. ..$ VtV : num [1, 1] 30
.. ..$ Vtr : num 45825
.. ..$ X : num [1:30, 1] 1 1 1 1 1 1 1 1 1 1 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:30] "1" "2" "3" "4" ...
.. .. .. ..$ : chr "(Intercept)"
.. .. ..- attr(*, "assign")= int 0
.. ..$ Xwts : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
.. ..$ Zt :Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
.. .. .. ..# i : int [1:30] 0 0 0 0 0 1 1 1 1 1 ...
.. .. .. ..# p : int [1:31] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. ..# Dim : int [1:2] 6 30
.. .. .. ..# Dimnames:List of 2
.. .. .. .. ..$ : chr [1:6] "A" "B" "C" "D" ...
.. .. .. .. ..$ : NULL
.. .. .. ..# x : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
.. .. .. ..# factors : list()
.. ..$ beta0 : num 0
.. ..$ delb : num 1527
.. ..$ delu : num [1:6] -20.755 0.461 33.669 -27.212 66.877 ...
.. ..$ theta : num 0.848
.. ..$ u0 : num [1:6] 0 0 0 0 0 0
.. ..and 42 methods, of which 30 are possibly relevant:
.. .. b, beta, CcNumer, copy#envRefClass, initialize, initializePtr,
.. .. installPars, L, ldL2, ldRX2, linPred, P, ptr, RX, RXdiag, RXi,
.. .. setBeta0, setDelb, setDelu, setTheta, solve, solveU, sqrL, u, unsc,
.. .. updateDecomp, updateL, updateLamtUt, updateRes, updateXwts
..# optinfo:List of 7
.. ..$ optimizer: chr "bobyqa"
.. ..$ control :List of 1
.. .. ..$ iprint: int 0
.. ..$ derivs :List of 2
.. .. ..$ gradient: num 1.61e-07
.. .. ..$ Hessian : num [1, 1] 14.1
.. ..$ conv :List of 2
.. .. ..$ opt : int 0
.. .. ..$ lme4: list()
.. ..$ feval : int 16
.. ..$ warnings : list()
.. ..$ val : num 0.848
...but this leaves me none the wiser.
lme4 supplies VarCorr for extracting variance and correlation components:
varcor <- VarCorr(fm1)
as.data.frame(varcor)
# grp var1 var2 vcov sdcor
#1 Batch (Intercept) <NA> 1764.05 42.0006
#2 Residual <NA> <NA> 2451.25 49.5101
I'm using the tm package, and looking to get the Flesch-Kincaid scores for a document using R. I found the koRpus package has some a lot of metrics including reading-level, and started using that. However, the object returned seems to be a very complicated s4 object I don't understand how to parse.
So, I apply this to my corpus:
txt <- system.file("texts", "txt", package = "tm")
(d <- Corpus(DirSource(txt, encoding = "UTF-8"), readerControl = list(language = "lat")))
f <- function(x) tokenize(x, format="obj", lang='en')
g <- function(x) flesch.kincaid(x)
x <- foreach(i=1:5) %dopar% g(f(d[[i]]))
x is then the vector of flesch.kincaid applied to Ovid.
> x[[1]]
Flesch-Kincaid Grade Level
Parameters: default
Grade: 13.62
Age: 18.62
Text language: en
How can I get just the return values grade=13.62, and age=18.62? The str(x) is so large it's hard to parse, ie:
> str(x[[1]])
Formal class 'kRp.readability' [package "koRpus"] with 49 slots
..# hyphen :Formal class 'kRp.hyphen' [package "koRpus"] with 3 slots
.. .. ..# lang : chr "en"
.. .. ..# desc :List of 5
.. .. .. ..$ num.syll : num 196
.. .. .. ..$ syll.distrib : num [1:6, 1:4] 25 25 65 27.8 27.8 ...
.. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. ..$ : chr [1:6] "num" "cum.sum" "cum.inv" "pct" ...
.. .. .. .. .. ..$ : chr [1:4] "1" "2" "3" "4"
.. .. .. ..$ syll.uniq.distrib: num [1:6, 1:4] 15 15 61 19.7 19.7 ...
.. .. .. .. ..- attr(*, "dimnames")=List of 2
.. .. .. .. .. ..$ : chr [1:6] "num" "cum.sum" "cum.inv" "pct" ...
.. .. .. .. .. ..$ : chr [1:4] "1" "2" "3" "4"
.. .. .. ..$ avg.syll.word : num 2.18
.. .. .. ..$ syll.per100 : num 218
.. .. ..# hyphen:'data.frame': 90 obs. of 2 variables:
.. .. .. ..$ syll: num [1:90] 1 1 1 1 2 3 1 2 3 1 ...
.. .. .. ..$ word: chr [1:90] "Si" "quis" "in" "hoc" ...
..# param :List of 1
.. ..$ Flesch.Kincaid: Named num [1:3] 0.39 11.8 15.59
.. .. ..- attr(*, "names")= chr [1:3] "asl" "asw" "const"
..# ARI :List of 1
.. ..$ : logi NA
..# ARI.NRI :List of 1
.. ..$ : logi NA
..# ARI.simple :List of 1
.. ..$ : logi NA
..# Bormuth :List of 1
.. ..$ : logi NA
..# Coleman :List of 1
.. ..$ : logi NA
..# Coleman.Liau :List of 1
.. ..$ : logi NA
..# Dale.Chall :List of 1
.. ..$ : logi NA
..# Dale.Chall.PSK :List of 1
.. ..$ : logi NA
..# Dale.Chall.old :List of 1
.. ..$ : logi NA
..# Danielson.Bryan :List of 1
.. ..$ : logi NA
..# Dickes.Steiwer :List of 1
.. ..$ : logi NA
..# DRP :List of 1
.. ..$ : logi NA
..# ELF :List of 1
.. ..$ : logi NA
..# Flesch :List of 1
.. ..$ : logi NA
..# Flesch.PSK :List of 1
.. ..$ : logi NA
..# Flesch.de :List of 1
.. ..$ : logi NA
..# Flesch.es :List of 1
.. ..$ : logi NA
..# Flesch.fr :List of 1
.. ..$ : logi NA
..# Flesch.nl :List of 1
.. ..$ : logi NA
..# Flesch.Kincaid :List of 3
.. ..$ flavour: chr "default"
.. ..$ grade : num 13.6
.. ..$ age : num 18.6
..# Farr.Jenkins.Paterson :List of 1
.. ..$ : logi NA
..# Farr.Jenkins.Paterson.PSK:List of 1
.. ..$ : logi NA
..# FOG :List of 1
.. ..$ : logi NA
..# FOG.PSK :List of 1
.. ..$ : logi NA
..# FOG.NRI :List of 1
.. ..$ : logi NA
..# FORCAST :List of 1
.. ..$ : logi NA
..# FORCAST.RGL :List of 1
.. ..$ : logi NA
..# Fucks :List of 1
.. ..$ : logi NA
..# Harris.Jacobson :List of 1
.. ..$ : logi NA
..# Linsear.Write :List of 1
.. ..$ : logi NA
..# LIX :List of 1
.. ..$ : logi NA
..# RIX :List of 1
.. ..$ : logi NA
..# SMOG :List of 1
.. ..$ : logi NA
..# SMOG.de :List of 1
.. ..$ : logi NA
..# SMOG.C :List of 1
.. ..$ : logi NA
..# SMOG.simple :List of 1
.. ..$ : logi NA
..# Spache :List of 1
.. ..$ : logi NA
..# Spache.old :List of 1
.. ..$ : logi NA
..# Strain :List of 1
.. ..$ : logi NA
..# Traenkle.Bailer :List of 1
.. ..$ : logi NA
..# TRI :List of 1
.. ..$ : logi NA
..# Wheeler.Smith :List of 1
.. ..$ : logi NA
..# Wheeler.Smith.de :List of 1
.. ..$ : logi NA
..# Wiener.STF :List of 1
.. ..$ : logi NA
..# lang : chr "en"
..# desc :List of 26
.. ..$ sentences : int 10
.. ..$ words : int 90
.. ..$ letters : Named num [1:12] 492 0 8 9 14 18 14 9 10 6 ...
.. .. ..- attr(*, "names")= chr [1:12] "all" "l1" "l2" "l3" ...
.. ..$ all.chars : int 692
.. ..$ syllables : Named num [1:5] 196 25 32 25 8
.. .. ..- attr(*, "names")= chr [1:5] "all" "s1" "s2" "s3" ...
.. ..$ lttr.distrib : num [1:6, 1:11] 0 0 90 0 0 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:6] "num" "cum.sum" "cum.inv" "pct" ...
.. .. .. ..$ : chr [1:11] "1" "2" "3" "4" ...
.. ..$ syll.distrib : num [1:6, 1:4] 25 25 65 27.8 27.8 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:6] "num" "cum.sum" "cum.inv" "pct" ...
.. .. .. ..$ : chr [1:4] "1" "2" "3" "4"
.. ..$ syll.uniq.distrib : num [1:6, 1:4] 15 15 61 19.7 19.7 ...
.. .. ..- attr(*, "dimnames")=List of 2
.. .. .. ..$ : chr [1:6] "num" "cum.sum" "cum.inv" "pct" ...
.. .. .. ..$ : chr [1:4] "1" "2" "3" "4"
.. ..$ punct : int 17
.. ..$ conjunctions : int 0
.. ..$ prepositions : int 0
.. ..$ pronouns : int 0
.. ..$ foreign : int 0
.. ..$ TTR : num 0.844
.. ..$ avg.sentc.length : num 9
.. ..$ avg.word.length : num 5.47
.. ..$ avg.syll.word : num 2.18
.. ..$ sntc.per.word : num 0.111
.. ..$ sntc.per100 : num 11.1
.. ..$ lett.per100 : num 547
.. ..$ syll.per100 : num 218
.. ..$ FOG.hard.words : NULL
.. ..$ Bormuth.NOL : NULL
.. ..$ Dale.Chall.NOL : NULL
.. ..$ Harris.Jacobson.NOL: NULL
.. ..$ Spache.NOL : NULL
..# TT.res :'data.frame': 107 obs. of 6 variables:
.. ..$ token : chr [1:107] "Si" "quis" "in" "hoc" ...
.. ..$ tag : chr [1:107] "word.kRp" "word.kRp" "word.kRp" "word.kRp" ...
.. ..$ lemma : chr [1:107] "" "" "" "" ...
.. ..$ lttr : num [1:107] 2 4 2 3 5 6 3 5 6 1 ...
.. ..$ wclass: chr [1:107] "word" "word" "word" "word" ...
.. ..$ desc : chr [1:107] "Word (kRp internal)" "Word (kRp internal)" "Word (kRp internal)" "Word (kRp internal)" ...
I'd ideally like to assign the F-K score to the meta(d) back in tm.
I'd appreciate learning either how to understand this return object and take out its values, but also, if there's another, better, faster way to get a F-K score, I'm all ears!
Similar to #Paul answer but one liner solution
sapply(lapply(x,slot,'Flesch.Kincaid'),'[',c('age','grade'))
[,1] [,2] [,3] [,4] [,5]
age 18.61778 17.62351 17.77699 18.29032 18.645
grade 13.61778 12.62351 12.77699 13.29032 13.645
Just use:
slot(x[[1]], "Flesch.Kincaid")
to get the subset of the object that contains these values. To get these in a list for each element in x, do something like:
list_fk = lapply(x, slot, "Flesch.Kincaid)
...and to get a vector with grade:
grades = sapply(list_fk, "[[", "grade")