[R] by function does not separate output from function with mulliple parts
Sorkin, John
j@ork|n @end|ng |rom @om@um@ry|@nd@edu
Wed Oct 25 01:22:58 CEST 2023
Colleagues,
I have written an R function (see fully annotated code below), with which I want to process a dataframe within levels of the variable StepType. My program works, it processes the data within levels of StepType, but the usual headers that separate the output by levels of StepType are at the end of the listing rather than being used as separators, i.e. I get
Regression results StepType First
Contrast results StepType First
Regression results StepType Second
Contrast results StepType Second
and only after the results are displayed do I get the usual separators:
mydata$StepType: First
NULL
------------------------------------------------------------------------------
mydata$StepType: Second
NULL
What I want to get is output that includes the separators i.e.,
mydata$StepType: First
Regression results StepType First
Contrast results StepType First
------------------------------------------------------------------------------
mydata$StepType: Second
Regression results StepType Second
Contrast results StepType Second
Can you help me get the separators included in the printed otput?
Thank you,
John
####################
# Create Dataframe #
####################
mydata <- structure(list(HipFlex = c(19.44, 4.44, 3.71, 1.95, 2.07, 1.55,
0.44, 0.23, 2.15, 0.41, 2.3, 0.22, 2.08, 4.61, 4.19, 5.65, 2.73,
1.46, 10.02, 7.41, 6.91, 5.28, 9.56, 2.46, 6, 3.85, 6.43, 3.73,
1.08, 1.43, 1.82, 2.22, 0.34, 5.11, 0.94, 0.98, 2.04, 1.73, 0.94,
18.41, 0.77, 2.31, 0.22, 1.06, 0.13, 0.36, 2.84, 5.2, 2.39, 2.99),
jSex = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), levels = c("Male", "Female"), class = "factor")),
row.names = c(NA, 50L), class = "data.frame")
mydata[,"StepType"] <- rep(c("First","Second"),25)
mydata
########################
# END Create Dataframe #
########################
############################
# Define function to be run#
############################
DoReg <- function(x){
fit0<-lm(as.numeric(HipFlex) ~ jSex,data=x)
print(summary(fit0))
cat("\nMale\n")
print(contrast(fit0,
list(jSex="Male")))
cat("\nFemale\n")
print(contrast(fit0,
list(jSex="Female")))
cat("\nDifference\n")
print(contrast(fit0,
a=list(jSex="Male"),
b=list(jSex="Female")))
}
################################
# END Define function to be run#
################################
#########################################
# Run function within levels of Steptype#
#########################################
by(mydata,mydata$StepType,DoReg)
#############################################
# END Run function within levels of Steptype#
#############################################
John David Sorkin M.D., Ph.D.
Professor of Medicine, University of Maryland School of Medicine;
Associate Director for Biostatistics and Informatics, Baltimore VA Medical Center Geriatrics Research, Education, and Clinical Center;
PI Biostatistics and Informatics Core, University of Maryland School of Medicine Claude D. Pepper Older Americans Independence Center;
Senior Statistician University of Maryland Center for Vascular Research;
Division of Gerontology and Paliative Care,
10 North Greene Street
GRECC (BT/18/GR)
Baltimore, MD 21201-1524
Cell phone 443-418-5382
More information about the R-help
mailing list