Hi Jim,
I checked vcdf for names() , (this is my test data set),
and it does have names:
names(vcdf)
[1] "male.parent" "family" "offspring.id" "P1L55" "P1L73"
[6] "P1L74" "P1L77" "P1L91" "P1L96" "P1L98"
[11] "P1L100" "P1L114" "P1L118" "peg.no"
"ec.length"
[16] "syll.length"
I also ran my code after inserting cat() and your command, but its giving
me blank lines.
for ( c in phen)
{
print("Phenotype")
cat(names(c), "\n")
for ( f in colms)
{
print("Marker")
cat(names(f), "\n")
fit<-lmer(data=vcdf, c~1 + (1|family/f))
print(summary(fit))
}}
[1] "Phenotype"
[1] "Marker"
Linear mixed model fit by REML
-
-
-
Number of obs: 390, groups: f:family, 82; family, 57
Fixed effects:
Estimate Std. Error t value
(Intercept) 96.577 1.376 70.2
[1] "Marker"
Linear mixed model fit by REML
-
-
.
.
.
Am I doing this correctly?
I've tried variations and it all behaves the same. Hope I'm not missing
something obvious...
--On 22 September 2009 10:06 +1000 Jim Lemon <j...@bitwrit.com.au> wrote:
On 09/21/2009 11:32 PM, A Singh wrote:
Dear All,
I need to print the column names of variables before each block of
output,
for a nested model with 2 levels (3 phenotypes * 10 markers).
This is so that my output is labeled, and I know which combination of
factors produces which set of REML estimates.
Currently my output looks like this:
[1] "Phenotype"
NULL ##this is where I want to insert colnames OR
numbers 1-3
[1] "Marker"
NULL ##insert colnames again OR numbers 1-10
Linear mixed model fit by REML
- (data)
- (data)
Random effects:
-(data)
.
.
[1] "Marker"
NULL
Linear mixed model fit by REML
- (data)
- (data)
Random effects:
.
.
(3*10 combinations)
My code is as follows:
vc<-read.table("...",header=T)
vcdf<-data.frame(vc)
vcdf[2:13]<-lapply(vcdf[2:13,factor)
colms<-(vcdf)[4:13] ## these are the 10 markers. I put them in a new
variable to make running the loop simple.
phen<-(vcdf)[14:16] ##these are the 3 phenotypes
for( c in phen)
{
print("Phenotype")
print(colnames(c))
for( f in colms)
{
print("Marker")
print(colnames(f))
fit<-lmer(data=vcdf, c~1 + (1|family/f))
print(summary(fit))
}}
Any pointers on how to print either column names, or a sequence of
numbers?
Hi Aditi,
First check whether your data frame already has names:
names(vcdf)
if not, give it names:
names(vcdf)<-paste("V",1:length(vcdf),sep="")
substituting whatever you like for "V". Then:
cat(names(c),"\n")
...
cat(names(f),"\n")
Jim
----------------------
A Singh
aditi.si...@bristol.ac.uk
School of Biological Sciences
University of Bristol
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.