Dear Zelig List,
I am trying to do estimate a random effects logit model using multiply imputed
data, but I get the following error message:
out<-zelig(cwarcons~rival_lag+weak10+civwar_nb+lref_totalnbl+lpopl
+ +lrgdp96l+polity2l+politysq+ethfrac+peace1+eeurop+lamerica+ssafrica+asia+
+ nafrme+lmtnest+elevdiff+Oil+instab+tag(1|ccode),data=mi(m1,m2,m3,m4,m5),
+ model="logit.mixed")
> summary(out)
Error in apply(coef1, 1, mean) : dim(X) must have a positive length
In addition: Warning messages:
1: In x$coef : $ operator is invalid for atomic vectors, returning NULL
2: In x$coef : $ operator is invalid for atomic vectors, returning NULL
3: In x$coef : $ operator is invalid for atomic vectors, returning NULL
4: In x$coef : $ operator is invalid for atomic vectors, returning NULL
5: In x$coef : $ operator is invalid for atomic vectors, returning NULL
Any ideas about how I might fix this?
Thanks,
Didi Kuo
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
I'm excited to inform you that Zelig 3.2-0 includes five new models for complex survey data, "normal.survey," "logit.survey," "probit.survey," "gamma.survey," and "poisson.survey." In addition to conventional Zelig inputs, these models allow users with complex survey data to input strata/cluster identification variables, replication weights, and/or existing survey weights. These survey-weighted models are appropriate for any dataset generated through something other than simple random sampling (i.e. stratified random sampling, cluster sampling), and model estimates are automatically adjusted to take into account the features of the survey design.
Full documentation for each model is available from http://gking.harvard.edu/zelig/docs/index.html . It is my hope that these models will allow researchers analyzing complex survey data to take advantage of Zelig's wide array of useful features.
Nicholas Carnes
Graduate Student
Department of Politics
Princeton University
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
Hi,
A couple of people have asked me how to install the latest version of
Zelig under Mac when it is not available at CRAN. You can do the
following from your R prompt:
install.packages("Zelig", repos="http://gking.harvard.edu", type="source")
Best,
Kosuke
---------------------------------------------------------
Kosuke Imai Office: Corwin Hall 041
Assistant Professor Phone: 609-258-6601
Department of Politics eFax: 973-556-1929
Princeton University Email: kimai(a)Princeton.Edu
Princeton, NJ 08544-1012 http://imai.princeton.edu/
---------------------------------------------------------
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
We haven't been able to submit this version successfully to CRAN (there
are various technical requirements we haven't been able to meet), but we
will do so as soon as possible. For the meantime, you can download the
source code from here:
http://gking.harvard.edu/src/contrib/ and then at the terminal type:
R CMD INSTALL Zelig_3.2-1.tar.gz
Kosuke
On Fri, 18 Apr 2008, Keith Schnakenberg wrote:
> I was able to install this bug-fix on my PC but not on my Mac. Is there a
> different directory for mac files?
>
> On Apr 11, 2008, at 6:39 AM, Kosuke Imai wrote:
>
>> We just did a bug-fix release for this. You can download it via:
>>
>> install.packages("Zelig", repos = "http://gking.harvard.edu")
>>
>> We are also pleased to announce that a paper which describes the advances
>> underlying Zelig is now forthcoming in Journal of Computational and
>> Graphical Statistics:
>>
>> Kosuke Imai, Gary King, and Olivia Lau. 2008. Toward A Common Framework for
>> Statistical Analysis and Development, Journal of Computational and
>> Graphical Statistics, forthcoming,
>> http://gking.harvard.edu/files/abs/z-abs.shtml.
>>
>> Kosuke
>>
>> ---------------------------------------------------------
>> Kosuke Imai Office: Corwin Hall 041
>> Assistant Professor Phone: 609-258-6601
>> Department of Politics eFax: 973-556-1929
>> Princeton University Email: kimai(a)Princeton.Edu
>> Princeton, NJ 08544-1012 http://imai.princeton.edu/
>> ---------------------------------------------------------
>>
>> On Thu, 10 Apr 2008, Keith Schnakenberg wrote:
>>
>>> I am doing simulations using Zelig with multiple imputed datasets from
>>> Amelia, and I get errors with setx for some of my simulations. The same
>>> setx commands work without errors when I do not use Amelia. The relevant
>>> code and errors are below:
>>>
>>> #SUBSET FOR POOLED SAMPLE (FOR CALCULATING 20TH AND 80TH PERCENTILE IN
>>> SIMS)
>>>
>>> sample=ssrl[ssrl$HFOR==1||ssrl$AFOR==1,] #In the setx command I set values
>>> equal to the 20th and 80th percentile from this sample rather than the
>>> subsetted sample I use in the model
>>>
>>> #SUBSET SAMPLE
>>>
>>> m1sample=subset(ssrl, subset=ssrl$HFOR==1, select= c(ENGLISH, TIME,PCTH2,
>>> CONTACT, SEND, VISIT2, LIVED, MEXICAN, MALE, EDU, INCOME, AGE, WTSTRAT))
>>>
>>> #IMPUTE MISSING DATA
>>>
>>> mi1 <- amelia(data=m1sample, m=10, p2s=0, frontend=FALSE,
>>> idvars="WTSTRAT", startvals=0, tolerance=0.0001, outname="m1outdata",
>>> write.out=TRUE)
>>>
>>> m1.1 <- read.csv("m1outdata1.csv")
>>> m1.2 <- read.csv("m1outdata2.csv")
>>> m1.3 <- read.csv("m1outdata3.csv")
>>> m1.4 <- read.csv("m1outdata4.csv")
>>> m1.5 <- read.csv("m1outdata5.csv")
>>> m1.6 <- read.csv("m1outdata6.csv")
>>> m1.7 <- read.csv("m1outdata7.csv")
>>> m1.8 <- read.csv("m1outdata8.csv")
>>> m1.9 <- read.csv("m1outdata9.csv")
>>> m1.10 <- read.csv("m1outdata10.csv")
>>>
>>> #ESTIMATE MODEL
>>>
>>> m1 <- zelig(ENGLISH ~ TIME + PCTH2 + CONTACT + SEND + VISIT2 + LIVED +
>>> MEXICAN + MALE + EDU + INCOME + AGE, model="logit", weights="WTSTRAT",
>>> data=mi(m1.1, m1.2, m1.3, m1.4, m1.5, m1.6, m1.7, m1.8, m1.9, m1.10)) #if
>>> i just use data=m1sample, all of the setx commands work with no errors#
>>>
>>> m1.TIME.low <- setx(m1, fn= list(numeric=mean, ordered=median,
>>> others=mode), TIME=quantile(sample$TIME, probs=.2, na.rm=T)) #the setx
>>> lines where i use percentiles give me an error
>>> m1.TIME.high <- setx(m1, fn= list(numeric=mean, ordered=median,
>>> others=mode), TIME= quantile(sample$TIME, probs=.8, na.rm=T))
>>>
>>> m1.SEND.low <- setx(m1, fn= list(numeric=mean, ordered=median,
>>> others=mode), SEND=0) #the lines where i just set the values equal to 0
>>> and 1 work fine with no errors
>>> m1.SEND.high <- setx(m1, fn= list(numeric=mean, ordered=median,
>>> others=mode), SEND=1)
>>>
>>> The errors I get are:
>>>
>>>> m1.TIME.low <- setx(m1, fn= list(numeric=mean, ordered=median,
>>>> others=mode), TIME=quantile(sample$TIME, probs=.2, na.rm=T))
>>> Error in eval(expr, envir, enclos) :
>>> ..1 used in an incorrect context, no ... to look in
>>>> m1.TIME.high <- setx(m1, fn= list(numeric=mean, ordered=median,
>>>> others=mode), TIME= quantile(sample$TIME, probs=.8, na.rm=T))
>>> Error in eval(expr, envir, enclos) :
>>> ..1 used in an incorrect context, no ... to look in
>>>
>>>
>>> Thanks,
>>> Keith Schnakenberg
>>> San Diego State University
>>>
>>> -
>>> Zelig Mailing List, served by Harvard-MIT Data Center
>>> Send messages: zelig(a)lists.gking.harvard.edu
>>> [un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
>>> Zelig program information: http://gking.harvard.edu/zelig/
>
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
Hi Casey,
Sorry that it took for a while, but I finally had a chance to look at
this. It looks like that your "dcode1" variable takes zero for all
observations. For example, the first imputed data set has:
> summary(tds1$dcode1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 0 0 0 0 0
As a consequence, the coefficient is not computed for this variable. For
example, try printing out:
summary(z.out[[1]])
In general, it might be a good idea to examine the model outputs for each
imputed data set in order to make sure that there is nothing strange going
on.
Hope this helps!
Kosuke
---------------------------------------------------------
Kosuke Imai Office: Corwin Hall 041
Assistant Professor Phone: 609-258-6601
Department of Politics eFax: 973-556-1929
Princeton University Email: kimai(a)Princeton.Edu
Princeton, NJ 08544-1012 http://imai.princeton.edu/
---------------------------------------------------------
On Mon, 24 Mar 2008, Casey Klofstad wrote:
> Kosuke-
>
> Sorry for the belated response. I am sill having trouble with this. If
> you are willing to try and replicate the error, the data sets are
> attached. Code follows below.
>
> Thanks!
>
> -c
>
> #START CODE
>
> #load data
> ds1 <- read.csv("match1.csv", header = TRUE)
> ds2 <- read.csv("match2.csv", header = TRUE)
> ds3 <- read.csv("match3.csv", header = TRUE)
> ds4 <- read.csv("match4.csv", header = TRUE)
> ds5 <- read.csv("match5.csv", header = TRUE)
>
> #make subsets
> tds1 <- subset(ds1, civw1_q==2)
> tds2 <- subset(ds2, civw1_q==2)
> tds3 <- subset(ds3, civw1_q==2)
> tds4 <- subset(ds4, civw1_q==2)
> tds5 <- subset(ds5, civw1_q==2)
>
> #run model
> z.out <- zelig(civtotw2 ~ treat + civtotw1 + dcode1 + dcode3 + dcode4
> + dcode5 + dcode6 + dcode7 + dcode8 + dcode9 + dcode10 + dcode11 +
> dcode12 + dcode13 + dcode14 + dcode15 + dcode16, weights="weights",
> data = mi(tds1, tds2, tds3, tds4, tds5), model = "ls")
>
> #set x
> x.untreat <- setx(z.out, treat = 0)
> x.treat <- setx(z.out, treat = 1)
>
> #expected values
> untreat.out <- sim(z.out, x = x.untreat)
> treat.out <- sim(z.out, x = x.treat)
>
> #FD
> FD.out <-sim(z.out, x = x.untreat, x1 = x.treat)
>
> #delete subsets
> tds1 <- NULL
> tds2 <- NULL
> tds3 <- NULL
> tds4 <- NULL
> tds5 <- NULL
>
> #END CODE
>
> On Tue, Mar 4, 2008 at 10:10 PM, Kosuke Imai <kimai(a)princeton.edu> wrote:
>> Casey,
>> A couple of points on this:
>>
>> First, an example for the use of both multiple imputation and "by"
>> command is given in demo(mi). There is an error we need to fix regarding
>> summary(), but at least for some models, "by" command can be used with
>> multiply imputed data sets. So, we may want to revisit the initial problem
>> you had. If you are interested, send us your data and code so that we can
>> replicate your error.
>>
>> I'm not 100% sure what the problem below is. It might be that some
>> variables are perfectly collinear in some of the multiply imputed data
>> sets. But, without the data, I can't quite diagnose the problem.
>>
>> Kosuke
>>
>>
>>
>> On Mon, 3 Mar 2008, Casey Klofstad wrote:
>>
>> > Hey all-
>> >
>> > Based on a prior post, we found out that Zelig does not support
>> > simulations with the "by" command. So, to address this, I'm trying to
>> > do this "manually" using the subset command to select cases.
>> > Unfortunately, this has also led to errors.
>> >
>> > Here is what I did:
>> >
>> > #select cases for each imputed data set
>> > tds1 <- subset(ds1, civw1_q==2)
>> > tds2 <- subset(ds2, civw1_q==2)
>> > tds3 <- subset(ds3, civw1_q==2)
>> > tds4 <- subset(ds4, civw1_q==2)
>> > tds5 <- subset(ds5, civw1_q==2)
>> >
>> > #run model with selected cases
>> > z.out <- zelig(civtotw2 ~ treat + civtotw1 + dcode1 + dcode3 + dcode4
>> > + dcode5 + dcode6 + dcode7 + dcode8 + dcode9 + dcode10 + dcode11 +
>> > dcode12 + dcode13 + dcode14 + dcode15 + dcode16, weights="weights",
>> > data = mi(tds1, tds2, tds3, tds4, tds5), model = "ls")
>> >
>> > #set values
>> > x.untreat <- setx(z.out, treat = 0)
>> >
>> > #generate expected values
>> > untreat.out <- sim(z.out, x = x.untreat)
>> >
>> > Ok, so everything runs as expected until this final step fails. The error is:
>> >
>> > Error in mvrnorm(num, mu = coef(object), Sigma = vcov(object)) :
>> > incompatible arguments
>> >
>> > Traceback says:
>> >
>> > 7: stop("incompatible arguments")
>> > 6: mvrnorm(num, mu = coef(object), Sigma = vcov(object))
>> > 5: param.lm(object[[i]], num = numM, bootstrap = bootstrap)
>> > 4: param(object[[i]], num = numM, bootstrap = bootstrap)
>> > 3: MIsimulation(object, num, prev, bootstrap, bootfn = bootfn, x = x,
>> > x1 = x1, ...)
>> > 2: sim.setx.MI(z.out, x = x.untreat)
>> > 1: sim(z.out, x = x.untreat)
>> >
>> > What am I missing here? One thing to note is that the sizes of the
>> > data sets differ by a few cases. This is becuase the number of cases
>> > where "civw1_q==2" differs based on the imputed values. Could that be
>> > the issue?
>> >
>> > Thanks much,
>> >
>> > -c
>> >
>>
>
>
>
>
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
I am doing simulations using Zelig with multiple imputed datasets
from Amelia, and I get errors with setx for some of my simulations.
The same setx commands work without errors when I do not use Amelia.
The relevant code and errors are below:
#SUBSET FOR POOLED SAMPLE (FOR CALCULATING 20TH AND 80TH PERCENTILE
IN SIMS)
sample=ssrl[ssrl$HFOR==1||ssrl$AFOR==1,] #In the setx command I set
values equal to the 20th and 80th percentile from this sample rather
than the subsetted sample I use in the model
#SUBSET SAMPLE
m1sample=subset(ssrl, subset=ssrl$HFOR==1, select= c(ENGLISH,
TIME,PCTH2, CONTACT, SEND, VISIT2, LIVED, MEXICAN, MALE, EDU, INCOME,
AGE, WTSTRAT))
#IMPUTE MISSING DATA
mi1 <- amelia(data=m1sample, m=10, p2s=0, frontend=FALSE,
idvars="WTSTRAT", startvals=0, tolerance=0.0001, outname="m1outdata",
write.out=TRUE)
m1.1 <- read.csv("m1outdata1.csv")
m1.2 <- read.csv("m1outdata2.csv")
m1.3 <- read.csv("m1outdata3.csv")
m1.4 <- read.csv("m1outdata4.csv")
m1.5 <- read.csv("m1outdata5.csv")
m1.6 <- read.csv("m1outdata6.csv")
m1.7 <- read.csv("m1outdata7.csv")
m1.8 <- read.csv("m1outdata8.csv")
m1.9 <- read.csv("m1outdata9.csv")
m1.10 <- read.csv("m1outdata10.csv")
#ESTIMATE MODEL
m1 <- zelig(ENGLISH ~ TIME + PCTH2 + CONTACT + SEND + VISIT2 + LIVED
+ MEXICAN + MALE + EDU + INCOME + AGE, model="logit",
weights="WTSTRAT", data=mi(m1.1, m1.2, m1.3, m1.4, m1.5, m1.6, m1.7,
m1.8, m1.9, m1.10)) #if i just use data=m1sample, all of the setx
commands work with no errors#
m1.TIME.low <- setx(m1, fn= list(numeric=mean, ordered=median,
others=mode), TIME=quantile(sample$TIME, probs=.2, na.rm=T)) #the
setx lines where i use percentiles give me an error
m1.TIME.high <- setx(m1, fn= list(numeric=mean, ordered=median,
others=mode), TIME= quantile(sample$TIME, probs=.8, na.rm=T))
m1.SEND.low <- setx(m1, fn= list(numeric=mean, ordered=median,
others=mode), SEND=0) #the lines where i just set the values equal to
0 and 1 work fine with no errors
m1.SEND.high <- setx(m1, fn= list(numeric=mean, ordered=median,
others=mode), SEND=1)
The errors I get are:
>m1.TIME.low <- setx(m1, fn= list(numeric=mean, ordered=median,
others=mode), TIME=quantile(sample$TIME, probs=.2, na.rm=T))
Error in eval(expr, envir, enclos) :
..1 used in an incorrect context, no ... to look in
> m1.TIME.high <- setx(m1, fn= list(numeric=mean, ordered=median,
others=mode), TIME= quantile(sample$TIME, probs=.8, na.rm=T))
Error in eval(expr, envir, enclos) :
..1 used in an incorrect context, no ... to look in
Thanks,
Keith Schnakenberg
San Diego State University
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
Dear Dan,
Thanks. I think this is exactly what I am looking for.
Best,
Shige
2008/4/9 Powers, Daniel A <dpowers(a)austin.utexas.edu>:
>
>
> Shige—
>
> I have had some success in using the MLE's (and their variance covariance
> matrix) in the simulation of nonlinear functions. This is especially useful
> when the asymptotic variance of the function is hard to derive using the
> delta method (or if you prefer less programming work). The trick is in
> getting the parameters and the covariance matrix from your external program
> (aML) output in a useable form for convenient input data to R.
>
>
>
> You can sample from the MVN for the MLE's. You can either provide the
> variance of the MLE's as a parameter for the MVN draw or you can draw a new
> var/cov matrix by using the estimated one as the mean in a
> Wishart/Inverse-Wishart dist. Assuming you have a vector of parameters
> (called b0s below) and a cov matrix (called v.0s), something like the
> following code will give you 1000 simulations of b0s that you can used to
> define the functions of the MLEs.
>
>
>
> J <- 1000
>
> K <- length(b0s)
>
> #
>
> library(mvtnorm)
>
> library(MCMCpack)
>
>
>
>
>
> b.0sim <- array(NA, c(K,J))
>
>
>
> for (j in 1:J) {
>
> S <- length(b.0s)^2 - 1
>
> # draw vc matrix from wishart
>
> vb.0 <- rwish(S, 1/S*v.0s)
>
>
>
> # draw b from mvnormal around mle
>
> bb0 <- rmvnorm(1,b.0s,vb.0)
>
>
>
> b.0sim[,j] <- bb0
>
> }
>
>
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Daniel A. Powers, Ph.D.
> Department of Sociology
> University of Texas at Austin
> 1 University Station A1700
> Austin, TX 78712-0118
> phone: 512-232-6335
> fax: 512-471-1748
> dpowers(a)mail.la.utexas.edu
> ------------------------------
>
> *From:* owner-zelig_at_lists_gking_harvard_edu(a)mail.hmdc.harvard.edu[mailto:
> owner-zelig_at_lists_gking_harvard_edu(a)mail.hmdc.harvard.edu] *On Behalf
> Of *???
> *Sent:* Tuesday, March 18, 2008 1:18 PM
> *To:* zelig(a)lists.gking.harvard.edu
> *Subject:* [zelig] Simulation using results outside of R/Zelig
>
>
>
> Dear All,
>
> I estimated a quite complicated multilevel endogenous switching model
> using aML (http://www.applied-ml.com/), which can produce point estimates
> as well as variance-covariance matrix. Now I would like to have Zelig to use
> these results (estimated using aML) and simulate quantities of substantive
> interest. Where can I find some examples and tutorials for a task like this?
> How do I get started? Thanks.
>
> Best,
> Shige
>
My apologies if you are receiving this twice.
Hello,
I'm having a problem with the "setx" command that I can't seem to figure
out. I am trying to set a range for one of the x's for the analysis I've
done. Following is an example of my commands:
1. z.out = zelig(q.180 ~ trauma.tot aceh + gayo + jawa + edhigh ,
model = "logit.gee", id = "hc", corstr = "exchangeable",
robust=TRUE, data = mi(fin1, fin2))
2. x.out = setx(z.out, aceh=0, gayo=1, jawa=0, trauma.tot = 0:40)
When I do this, I get the following error message:
"..4 used in an incorrect context, no ... to look in"
In this message, 4 refers to the location in my setx command line in
which my range is located.
I think the problem is rooted in the fact that I'm using multiply
imputed datasets. The reason I think this is that the setx command line
above works fine if I do it after I've run the zelig command preceding
it with a single dataset. But every time I try to set data=mi(data1,
data2...) in my zelig command, I get the error message.
Can anyone help me figure out a way to get around this problem?
Thanks in advance for any help you can give.
Sincerely,
Steve Shewfelt
PhD Candidate
Political Science
Yale University
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
Hello,
I'm having a problem with the "setx" command that I can't seem to figure
out. I am trying to set a range for one of the x's for the analysis I've
done. Following is an example of my commands:
1. z.out = zelig(q.180 ~ trauma.tot aceh + gayo + jawa + edhigh ,
model = "logit.gee", id = "hc", corstr = "exchangeable",
robust=TRUE, data = mi(fin1, fin2))
2. x.out = setx(z.out, aceh=0, gayo=1, jawa=0, trauma.tot = 0:40)
When I do this, I get the following error message:
"..4 used in an incorrect context, no ... to look in"
In this message, 4 refers to the location in my setx command line in
which my range is located.
I think the problem is rooted in the fact that I'm using multiply
imputed datasets. The reason I think this is that the setx command line
above works fine if I do it after I've run the zelig command preceding
it with a single dataset. But every time I try to set data=mi(data1,
data2...) in my zelig command, I get the error message.
Can anyone help me figure out a way to get around this problem?
Thanks in advance for any help you can give.
Sincerely,
Steve Shewfelt
PhD Candidate
Political Science
Yale University
-
Zelig Mailing List, served by Harvard-MIT Data Center
Send messages: zelig(a)lists.gking.harvard.edu
[un]subscribe Options: http://lists.gking.harvard.edu/?info=zelig
Zelig program information: http://gking.harvard.edu/zelig/
Hi everyone,
A new version of Zelig version (3.2-0) is online.
What's new?
Added models for survey data -- normal.survey,
logit.survey,probit.survey, poisson.survey, gamma.survey
To update/install this release:
- *nix / windows users:
install.packages("Zelig", repos="http://gking.harvard.edu" <http://gking.harvard.edu%22>)
- mac users:
install.packages("Zelig", repos="http://gking.harvard.edu"
<http://gking.harvard.edu%22>, type="source")
Please let us know if you run into problems.
thanks,
Ferdi