Skip to content

Commit

Permalink
version 0.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephane Champely authored and gaborcsardi committed Feb 14, 2012
1 parent 1111e5e commit f137021
Show file tree
Hide file tree
Showing 21 changed files with 561 additions and 341 deletions.
11 changes: 6 additions & 5 deletions DESCRIPTION
@@ -1,17 +1,18 @@
Package: RcmdrPlugin.pointG
Type: Package
Title: Rcmdr Graphical POINT of view for questionnaire data Plug-In
Version: 0.1
Date: 2011-07-28
Version: 0.2.1
Date: 2012-02-14
Author: Stephane Champely <champely@univ-lyon1.fr>
Maintainer: Stephane Champely <champely@univ-lyon1.fr>
Depends: Rcmdr (>= 1.4-0), tcltk, MASS, lattice, qgraph, VIM, maps,
YaleToolkit, ade4, effects, RColorBrewer,Hmisc, car
Suggests: rgl
Description: This package provides an Rcmdr "plug-in" to analyze questionnaire data.
Description: This package provides an Rcmdr "plug-in" to analyze
questionnaire data.
License: GPL (>= 2)
Models:
Encoding: latin1
Repository: CRAN
Date/Publication: 2011-12-03 15:14:06
Packaged: 2011-12-03 11:06:32 UTC; champely
Date/Publication: 2012-02-17 07:38:35
Packaged: 2012-02-17 04:51:05 UTC; champely
28 changes: 16 additions & 12 deletions MD5
@@ -1,15 +1,19 @@
d2f8e62af3f36cb9e3ff0a21d190599d *DESCRIPTION
9fca2e4580487ff608bdec873e1a4a90 *NAMESPACE.txt
4d706c4521a9bfd90b0098715dd4b810 *DESCRIPTION
d4e1af89117d75f5cad576e7c52ef058 *NAMESPACE
c629de84a492232e855e2d1c03e68f7a *R/RcmdrPlugin.pointG.R
1074a0aad9b5e00192c8844e42e1d496 *R/Summarydf0.R
14de18f8d03ec4f6889e63b720995162 *R/Summaryfactor0.R
f436c39558149b867315a96b2e7439aa *R/Summarynumeric0.R
13fc0aca1de77d83990f742314638a01 *R/Summaryordered0.R
0bf0fe4bcd97e73c13a9918237996e4f *R/Summaryvariable0.R
67535abe1894a2b0c66e6eca48df671d *R/Yule1.R
f7bab738d371bd97bf953208beb80c1e *R/Yule2.R
e85366bfcec031a78ee6a3404c1c7af2 *R/Yule3.R
880a4fe2e718c1144c4dd1300df3903c *R/Yule4.R
76cdba3148b06631f941a8289b845a06 *R/aaggr0.R
559dda68350d293bc44ebdb050132f5a *R/bbbisummarize0.R
3dbc5d232ad216c193d4b1e8c1e7f4db *R/bbbivariate0.R
a03d21836bc0c525cf6cfef598d44bfb *R/bbigraphe0.R
19e1c7c2d30787f8412b947211610a46 *R/bbisummarize0.R
d1775252402c058f828cb4f2aaba98ac *R/bbivariate0.R
48cd23cb6acc86a1dc2e351b0090ca27 *R/bbref0.R
318dcbc7316d4e0bfe46276ebba7aaf8 *R/bigraphe0.R
00bec6451913e02823686cab27dcfd3f *R/bisummarize0.R
Expand All @@ -19,7 +23,7 @@ aba2a707969373d03ae7b7621bf9b43e *R/bref.variable0.R
3a958e3f2e887430df615d794a919def *R/cadrage0.R
a82965e46b78a2088aa751744fbfbed0 *R/cchalandise.DEP0.R
fbb7aea2899a7da5ae49cb68a357a184 *R/ccroise0.R
9d3ed6961fb659a287c5143de4f0420c *R/chalandise.DEP0.R
9b6d70ef5de17ea51da1bedf6b0b76ad *R/chalandise.DEP0.R
0bbc2b587bee105d3a7dcd7e15d7ba5e *R/histbackback0.R
4c9697b7f810d2512a42fa90ad229f04 *R/is.binary.R
e88d64bdc7073cde585d31b148220da9 *R/llinear0.R
Expand All @@ -28,24 +32,24 @@ f68d610a37cf2eeff94d75193b8646f6 *R/mmultivariate0.R
173204a469f54a924f38f8692434c876 *R/nettoyage0.R
9111a345b15ae2d20bb6aec6576b5968 *R/pem.R
2f4954b9957d9a718968134a9a282ab1 *R/plotCat2.R
323e30cbf6e6d1743be1517f4835a0a9 *R/plotLikert0.R
3b0e96fad6b9bbf855eee1d3f1ff616d *R/plotLikert0.R
e8a0f13f794384a7e9ba0a8b72b01491 *R/plotNum.R
57d5f966e480f58e4297794c177a596d *R/plotTabCont0.R
12469f6d05fb1d735c73ebe8863e2b59 *R/pplotLikert0.R
99fc6b5d2b3410a72117e9b68f1641c9 *R/ppplotLikert0.R
6ad0bc5c22c0ea05feb3b7632ab1a19c *R/ppyramide0.R
55caac1536eab769a5facbc987016127 *R/pyramide0.R
525a8144cb55c40119fc0b50457a1797 *R/sSummarydf0.R
a8feb37ef6389c691d7f657279d51d1e *R/twoWayTable0.R
0c91a689235899b0a3526ac39cf09fb5 *R/univariate0.R
b07abd412ca7b4f6582a2d49f0e1d661 *R/univariate0.R
ea324ffa73be7c111518e3d4dd89f595 *R/uunivariate0.R
8fc67f7e2554c8135576d3d41713651e *RcmdrPlugin.pointG-Ex.R
21c714d381c58958c047d0943b892ea9 *data/VIH.rda
5e90e8fef1ecefbf05916e87055089f1 *data/XY.DEP.rda
425a640f428876ac1a26540498a29510 *inst/CHANGES
48125ebd6cd6a1f0bdb8612f89c1f373 *inst/doc/ModeEmploi_pointG_0.1.pdf
c904602fe5b32bf2bf74e85d8daadedd *inst/etc/menus.txt
7385f07ba433d84580a6c3a071513553 *man/RcmdrPlugin.pointG-internal.Rd
ebb01d04014ed334c687544f99f1e4d4 *man/RcmdrPlugin.pointG-package.Rd
b3850a73e9de573fdea629adcd0ea284 *inst/doc/ModeEmploi_pointG_0.1.pdf
8b197392b5fe7a1c40815b4a03dca73a *inst/etc/menus.txt
9a948c3302e0e6a5daa4896483988c7a *man/RcmdrPlugin.pointG-internal.Rd
c5f94a78e7c1f55f295dbd4d2e0ed40f *man/RcmdrPlugin.pointG-package.Rd
cafb7b8b36073fec20518a84b38271cc *man/VIH.Rd
e57e130b1df0d7ebace2e479c3ebeaed *man/XY.DEP.Rd
dad7edcfc19e0c4194a1e2909916a70d *man/bisummarize0.Rd
Expand Down
22 changes: 22 additions & 0 deletions NAMESPACE
@@ -0,0 +1,22 @@
# Default NAMESPACE created by R
# Remove the previous line if you edit this file

# Export all names
exportPattern(".")

# Import all packages listed as Imports or Depends
import(
Rcmdr,
tcltk,
MASS,
lattice,
qgraph,
VIM,
maps,
YaleToolkit,
ade4,
effects,
RColorBrewer,
Hmisc,
car
)
5 changes: 0 additions & 5 deletions NAMESPACE.txt

This file was deleted.

27 changes: 27 additions & 0 deletions R/Yule1.R
@@ -0,0 +1,27 @@
Yule1<-
function (df, levX, varX, varY)
{
X <- df[, varX]
Y <- df[, varY]
CT <- table(X, Y)
sumX <- apply(CT, 1, sum)
sumY <- apply(CT, 2, sum)
sumCT <- sum(CT)
levY <- levels(Y)
J <- length(levY)
result <- matrix(0, nrow = J, ncol = 4)
for (j in 1:J) {
a <- CT[levX, levY[j]]
b <- sumX[levX] - a
c <- sumY[levY[j]] - a
d <- sumCT - a - b - c
result[j, 1] <- a
Q <- (a * d - b * c)/(a * d + b * c)
result[j, 2] <- Q
result[j, 3] <- (1 - Q^2) * sqrt(1/a + 1/b + 1/c + 1/d)/2
result[j, 4] <- chisq.test(matrix(c(a, c, b, d), ncol = 2))$p.value
}
colnames(result) <- c("n", "Q", "se(Q)", "p")
rownames(result) <- paste(varY, levY, sep = "_")
result
}
30 changes: 30 additions & 0 deletions R/Yule2.R
@@ -0,0 +1,30 @@
Yule2<-
function (df, levX, varX, varY)
{
X <- df[, varX]
Y <- df[, varY]
Ycut <- cut(Y, breaks = c(min(Y, na.rm = TRUE) - 1, mean(Y,
t = 0.2, na.rm = TRUE), max(Y, na.rm = TRUE)), label = c("Moins",
"Plus"))
CT <- table(X, Ycut)
sumX <- apply(CT, 1, sum)
sumY <- apply(CT, 2, sum)
sumCT <- sum(CT)
levY <- levels(Ycut)
J <- length(levY)
result <- matrix(0, nrow = J, ncol = 4)
for (j in 1:J) {
a <- CT[levX, levY[j]]
b <- sumX[levX] - a
c <- sumY[levY[j]] - a
d <- sumCT - a - b - c
result[j, 1] <- a
Q <- (a * d - b * c)/(a * d + b * c)
result[j, 2] <- Q
result[j, 3] <- (1 - Q^2) * sqrt(1/a + 1/b + 1/c + 1/d)/2
result[j, 4] <- chisq.test(matrix(c(a, c, b, d), ncol = 2))$p.value
}
colnames(result) <- c("n", "Q", "se(Q)", "p")
rownames(result) <- paste(varY, levY, sep = "_")
result
}
23 changes: 23 additions & 0 deletions R/Yule3.R
@@ -0,0 +1,23 @@
Yule3<-
function (df, levX, varX, varYYY)
{
L <- length(varYYY)
if (is.factor(df[, varYYY[1]])) {
T1 <- Yule1(df, levX, varX, varYYY[1])
}
else {
T1 <- Yule2(df, levX, varX, varYYY[1])
}
if (L > 1) {
for (l in 2:L) {
if (is.factor(df[, varYYY[l]])) {
T2 <- Yule1(df, levX, varX, varYYY[l])
}
else {
T2 <- Yule2(df, levX, varX, varYYY[l])
}
T1 <- rbind(T1, T2)
}
}
T1
}
17 changes: 17 additions & 0 deletions R/Yule4.R
@@ -0,0 +1,17 @@
Yule4<-
function (df, levX, varX, varYYY, alpha = 0.1)
{
T1 <- Yule3(df, levX, varX, varYYY)
T2 <- T1[T1[, 2] > 0, ]
T3 <- T2[order(T2[, 2]), ]
T4 <- T3[T3[, 4] < alpha, ]
L <- nrow(T4)
MIN <- min(0, T4[, 2] - 1.96 * T4[, 3])
MAX <- max(1, T4[, 2] + 1.96 * T4[, 3])
titre <- paste(varX, levX, sep = "=")
dotchart(T4[, 2], labels = rownames(T4), xlim = c(MIN, MAX),
main = titre)
abline(v = 0, lty = 2)
segments(T4[, 2] - 1.96 * T4[, 3], 1:L, T4[, 2] + 1.96 *
T4[, 3], 1:L)
}
173 changes: 173 additions & 0 deletions R/bbbisummarize0.R
@@ -0,0 +1,173 @@
bbbisummarize0<- function () {
require("car")
defaults <- list(initial.x = NULL, initial.y = NULL, initial.jitterx = 0, initial.jittery = 0,
initial.logstringx = 0, initial.logstringy = 0, initial.log = 0, initial.box = 1,
initial.line = 1, initial.smooth = 1, initial.spread = 1, initial.span = 50,
initial.subset = gettextRcmdr ("<all valid cases>"), initial.ylab = gettextRcmdr ("<auto>"),
initial.xlab = gettextRcmdr("<auto>"), initial.pch = gettextRcmdr("<auto>"),
initial.cexValue = 1, initial.cex.axisValue = 1, initial.cex.labValue = 1, initialGroup=NULL, initial.lines.by.group=1)
dialog.values <- getDialog("scatterPlot", defaults)
initial.group <- dialog.values$initial.group
.linesByGroup <- if (dialog.values$initial.lines.by.group == 1) TRUE else FALSE
.groups <- if (is.null(initial.group)) FALSE else initial.group
initializeDialog(title = gettextRcmdr("Statistiques croisees en saucisson"))
.numeric <- Numeric()
variablesFrame <- tkframe(top)
xBox <- variableListBox(variablesFrame, Variables(), title = gettextRcmdr("Explicative (une seule)"))
yBox <- variableListBox(variablesFrame, Variables(), selectmode="multiple",title = gettextRcmdr("A expliquer (plusieurs)"))

optionsParFrame <- tkframe(top)
checkBoxes(window = optionsParFrame, frame = "optionsFrame",
boxes = c("identify", "jitterX", "jitterY", "logX", "logY",
"boxplots", "lsLine", "smoothLine", "spread"), initialValues = c(dialog.values$initial.log,
dialog.values$initial.jitterx, dialog.values$initial.jittery,
dialog.values$initial.logstringx, dialog.values$initial.logstringy,
dialog.values$initial.box, dialog.values$initial.line, dialog.values$initial.smooth,
dialog.values$initial.spread),labels = gettextRcmdr(c("Identify points",
"Jitter x-variable", "Jitter y-variable", "Log x-axis",
"Log y-axis", "Marginal boxplots", "Least-squares line",
"Smooth line", "Show spread")), title = "Options")
sliderValue <- tclVar(dialog.values$initial.span)
slider <- tkscale(optionsFrame, from = 0, to = 100, showvalue = TRUE,
variable = sliderValue, resolution = 5, orient = "horizontal")
subsetBox(subset.expression = dialog.values$initial.subset)
labelsFrame <- tkframe(top)
xlabVar <- tclVar(dialog.values$initial.xlab)
ylabVar <- tclVar(dialog.values$initial.ylab)
xlabFrame <- tkframe(labelsFrame)
xlabEntry <- ttkentry(xlabFrame, width = "25", textvariable = xlabVar)
xlabScroll <- ttkscrollbar(xlabFrame, orient = "horizontal",
command = function(...) tkxview(xlabEntry, ...))
tkconfigure(xlabEntry, xscrollcommand = function(...) tkset(xlabScroll,
...))
tkgrid(labelRcmdr(xlabFrame, text = gettextRcmdr("x-axis label"),
fg = "blue"), sticky = "w")
tkgrid(xlabEntry, sticky = "w")
tkgrid(xlabScroll, sticky = "ew")
ylabFrame <- tkframe(labelsFrame)
ylabEntry <- ttkentry(ylabFrame, width = "25", textvariable = ylabVar)
ylabScroll <- ttkscrollbar(ylabFrame, orient = "horizontal",
command = function(...) tkxview(ylabEntry, ...))
tkconfigure(ylabEntry, xscrollcommand = function(...) tkset(ylabScroll,
...))
tkgrid(labelRcmdr(ylabFrame, text = gettextRcmdr("y-axis label"),
fg = "blue"), sticky = "w")
tkgrid(ylabEntry, sticky = "w")
tkgrid(ylabScroll, sticky = "ew")
tkgrid(xlabFrame, labelRcmdr(labelsFrame, text = " "),
ylabFrame, sticky = "w")
parFrame <- tkframe(optionsParFrame)
pchVar <- tclVar(dialog.values$initial.pch)
pchEntry <- ttkentry(parFrame, width = 25, textvariable = pchVar)
cexValue <- tclVar(dialog.values$initial.cexValue)
cex.axisValue <- tclVar(dialog.values$initial.cex.axisValue)
cex.labValue <- tclVar(dialog.values$initial.cex.labValue)
cexSlider <- tkscale(parFrame, from = 0.5, to = 2.5, showvalue = TRUE,
variable = cexValue, resolution = 0.1, orient = "horizontal")
cex.axisSlider <- tkscale(parFrame, from = 0.5, to = 2.5,
showvalue = TRUE, variable = cex.axisValue, resolution = 0.1,
orient = "horizontal")
cex.labSlider <- tkscale(parFrame, from = 0.5, to = 2.5,
showvalue = TRUE, variable = cex.labValue, resolution = 0.1,
orient = "horizontal")
onOK <- function(){
x <- getSelection(xBox)
y <- getSelection(yBox)
closeDialog()
if (length(x) == 0 || length(y) == 0){
errorCondition(recall=bbbisummarize0, message=gettextRcmdr("You must select two variables"))
return()
}
if (length(x) > 1){
errorCondition(recall=bbbisummarize0, message=gettextRcmdr("Une seule variable explicative"))
return()
}
if (length(y) <2){
errorCondition(recall=bbbisummarize0, message=gettextRcmdr("Une tranche contient au moins deux variables"))
return()
}


.activeDataSet <- ActiveDataSet()
jitter <- if ("1" == tclvalue(jitterXVariable) && "1" == tclvalue(jitterYVariable)) ", jitter=list(x=1, y=1)"
else if ("1" == tclvalue(jitterXVariable)) ", jitter=list(x=1)"
else if ("1" == tclvalue(jitterYVariable)) ", jitter=list(y=1)"
else ""
logstring <- ""
if ("1" == tclvalue(logXVariable)) logstring <- paste(logstring, "x", sep="")
if ("1" == tclvalue(logYVariable)) logstring <- paste(logstring, "y", sep="")
log <- if(logstring != "") paste(', log="', logstring, '"', sep="") else ""
if("1" == tclvalue(identifyVariable)){
RcmdrTkmessageBox(title="Identify Points",
message=paste(gettextRcmdr("Use left mouse button to identify points,\n"),
gettextRcmdr(if (MacOSXP()) "esc key to exit." else "right button to exit."), sep=""),
icon="info", type="ok")
idtext <- ', id.method="identify"'
}
else idtext <- ""
box <- if ("1" == tclvalue(boxplotsVariable)) "'xy'" else "FALSE"
line <- if("1" == tclvalue(lsLineVariable)) "lm" else "FALSE"
smooth <- as.character("1" == tclvalue(smoothLineVariable))
spread <- as.character("1" == tclvalue(spreadVariable))
span <- as.numeric(tclvalue(sliderValue))
subset <- tclvalue(subsetVariable)
subset <- if (trim.blanks(subset) == gettextRcmdr("<all valid cases>")) ""
else paste(", subset=", subset, sep="")
xlab <- trim.blanks(tclvalue(xlabVar))
xlab <- if(xlab == gettextRcmdr("<auto>")) "" else paste(', xlab="', xlab, '"', sep="")
ylab <- trim.blanks(tclvalue(ylabVar))
ylab <- if(ylab == gettextRcmdr("<auto>")) "" else paste(', ylab="', ylab, '"', sep="")
cex <- as.numeric(tclvalue(cexValue))
cex <- if(cex == 1) "" else paste(', cex=', cex, sep="")
cex.axis <- as.numeric(tclvalue(cex.axisValue))
cex.axis <- if(cex.axis == 1) "" else paste(', cex.axis=', cex.axis, sep="")
cex.lab <- as.numeric(tclvalue(cex.labValue))
cex.lab <- if(cex.lab == 1) "" else paste(', cex.lab=', cex.lab, sep="")
pch <- gsub(" ", ",", tclvalue(pchVar))
if ("" == pch) {
errorCondition(recall=scatterPlot, message=gettextRcmdr("No plotting characters."))
return()
}
pch <- if(trim.blanks(pch) == gettextRcmdr("<auto>")) "" else paste(", pch=c(", pch, ")", sep="")

selectVars <- paste(", select=c(", x, ",", paste(y, collapse = ","),
")", sep = "")
newn <- "D1"
command <- paste(newn, " <- subset(", ActiveDataSet(),
selectVars, ")", sep = "")
logger(command)
result <- justDoIt(command)
print(paste("Variable explicative",x,sep=" : "))
print(bisummarize0(newn))
if (class(result)[1] != "try-error")
tkfocus(CommanderWindow())
activateMenus()
tkfocus(CommanderWindow()) }
groupsBox(scatterPlot, plotLinesByGroup = TRUE, initialGroup=initial.group, initialLinesByGroup=dialog.values$initial.lines.by.group,
initialLabel=if (is.null(initial.group)) gettextRcmdr("Plot by groups") else paste(gettextRcmdr("Plot by:"), initial.group))
OKCancelHelp(helpSubject = " bivariate0")
tkgrid(getFrame(xBox), getFrame(yBox), sticky = "nw")
tkgrid(variablesFrame, sticky = "w")
tkgrid(labelRcmdr(optionsFrame, text = gettextRcmdr("Span for smooth")),
slider, sticky = "w")
tkgrid(labelRcmdr(parFrame, text = gettextRcmdr("Plotting Parameters"),
fg = "blue"), sticky = "w")
tkgrid(labelRcmdr(parFrame, text = gettextRcmdr("Plotting characters")),
pchEntry, stick = "w")
# tkgrid(labelRcmdr(parFrame, text = gettextRcmdr("Point size")),
# cexSlider, sticky = "w")
#tkgrid(labelRcmdr(parFrame, text = gettextRcmdr("Axis text size")),
# cex.axisSlider, sticky = "w")
#tkgrid(labelRcmdr(parFrame, text = gettextRcmdr("Axis-labels text size")),
# cex.labSlider, sticky = "w")
tkgrid(optionsFrame, parFrame, sticky = "nw")
#tkgrid(optionsParFrame, sticky = "w")
#tkgrid(labelsFrame, sticky = "w")
#tkgrid(subsetFrame, sticky = "w")
#tkgrid(groupsFrame, sticky = "w")
tkgrid(labelRcmdr(top, text = " "))
tkgrid(buttonsFrame, columnspan = 2, sticky = "w")
dialogSuffix(rows = 8, columns = 2)
}


0 comments on commit f137021

Please sign in to comment.