some function

Randomly select configurations from a data frame or configTable

Randomly select configurations from a data frame or configTable

The function some randomly selects configurations from a data frame or configTable with or without replacement.

some(x, ...) ## S3 method for class 'data.frame' some(x, n = 10, replace = TRUE, ...) ## S3 method for class 'configTable' some(x, n = 10, replace = TRUE, ...)

Arguments

  • x: Data frame or configTable.
  • n: Sample size.
  • replace: Logical; if TRUE, configurations are sampled with replacement.
  • ...: Not used.

Details

The function some randomly samples configurations from x, which is a data frame or configTable. Such samples can, for instance, be used to simulate data fragmentation (limited diversity), i.e. the failure to observe/measure all configurations that are compatible with a data generating causal structure. They can also be used to simulate large-N data featuring multiple cases instantiating each configuration.

Returns

A data frame or configTable.

Note

The generic function some is read from the package list("car"). The method for data.frames in the cna package has an additional parameter replace, which is TRUE by default. It will thus not apply the same sampling scheme as the method in car by default.

References

Krook, Mona Lena. 2010. Women's Representation in Parliament: A Qualitative ComparativeAnalysis.

Political Studies 58(5):886-908.

See Also

configTable, selectCases, allCombs, makeFuzzy, cna, d.women

Examples

# Randomly sample configurations from the dataset analyzed by Krook (2010). ct.women <- configTable(d.women) some(ct.women, 20) some(ct.women, 5, replace = FALSE) some(ct.women, 5, replace = TRUE) # Simulate limited diversity in data generated by the causal structure # A=2*B=1 + C=3*D=4 <-> E=3. dat1 <- allCombs(c(3, 3, 4, 4, 3)) dat2 <- selectCases("A=2*B=1 + C=3*D=4 <-> E=3", dat1) (dat3 <- some(dat2, 150, replace = TRUE)) cna(dat3) # Simulate large-N fuzzy-set data generated by the common-cause structure # (A*b*C + B*c <-> D) * (A*B + a*C <-> E). dat1 <- selectCases("(A*b*C + B*c <-> D) * (A*B + a*C <-> E)") dat2 <- some(dat1, 250, replace = TRUE) dat3 <- makeFuzzy(ct2df(dat2), fuzzvalues = seq(0, 0.45, 0.01)) cna(dat3, ordering = "D, E", strict = TRUE, con = .8, cov = .8)