Hi Bert,
Thanks a lot for informing me regarding the html format of my email.
I also would like to thank to Erdogan CEVHER and Jim LEMON for their kind
reply/suggestions. Yes I am aware of names function in R which is not the one I
am looking for in here. Let me try to explain in another way.
The below part includes data generation, making cross-tab, Chi-Squared test and
bar plot through ggplot.
#######################################################################
MyData<-data.frame("Gender" = c("F", "F",
"F", "F", "M", "M", "M",
"M", "M", "M", "F", "F"),
"Hand" = c("R", "R",
"L", "L", "R", "R", "L",
"L", "R", "R", "L", "L"),
"Gr" = c(1, 2, 1, 2, 1, 2, 1, 2, 1,
2, 1, 2) )
MyData <- within(MyData, {
Gender <- factor(Gender)
Hand <- factor(Hand)
Gr <- factor(Gr)
}
)
str(MyData)
library(ggplot2)
################# Part 1 #########################################
MyT <- table(MyData$Gender, MyData$Hand)
print(MyT)
MyChi<- chisq.test(MyT)
print(MyChi)
dMyT <- data.frame(as.table(as.matrix(table(MyData$Gender, MyData$Hand, useNA
= "ifany"))))
name2<- c("Gender", "Hand", "Frequency")
names(dMyT) <- name2
ggplot(data = na.omit(dMyT), aes(fill=Hand, y=Frequency, x=Gender)) +
geom_bar(position="dodge", stat="identity")
###############################################
Let?s say I have hundreds of variables (e.g SNP data). By using above codes I
can perform what I need. However , I need to copy/paste variable name(s) for
making table, Chi-Square test, and ggplot. This increase the chance of
incorrectly copying/pasting variable name(s). What I can do is define variable
name(s) earlier and pass that names to making table, Chi-Square test, and ggplot
part. I believe there is a way to do it. I tried ?paste? function (as below),
but it did not work either.
Any comment/help is deeply appreciated.
Kind Regards
Seyit Ali
##############################################
V1 <- "Gender"
V2 <- "Hand"
MyT2 <- table(paste('MyData$',V1), paste('MyData$',V2) )
print(MyT)
MyChi<- chisq.test(MyT)
print(MyChi)
dMyT <- data.frame(as.table(as.matrix(table(paste('MyData$',V1),
paste('MyData$',V2), useNA = "ifany"))))
name2<- c(V1, V2, "Frequency")
names(dMyT) <- name2
ggplot(data = na.omit(dMyT), aes(fill=V2, y=Frequency, x=V1)) +
geom_bar(position="dodge", stat="identity")
#################################################
From: Bert Gunter [mailto:bgunter.4567 at gmail.com]
Sent: Monday, 28 December 2020 12:08 AM
To: seyitali.kayis at ibu.edu.tr
Cc: R-help <r-help at r-project.org>
Subject: Re: [R] Passing variable name
This is a *plain text* list. As you can see from the included text that I
received, the HTML version that you sent was somewhat mangled by the server. I
do not know whether or not enough got through for you to get a helpful reply,
but if not, re-send *to the list, not me* in *plain text*.
Bert Gunter
"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Sun, Dec 27, 2020 at 12:25 PM Seyit Ali KAYIS <seyitali.kayis at
ibu.edu.tr <mailto:seyitali.kayis at ibu.edu.tr> > wrote:
Dear R users,
?
I have a data frame as below. In part 1, I have created a table for Gender and
Hand, performed Chi-Square test and made graph using ggplot.
?
I want to replace the original variable names (Gender and Hand) with V1 and V2
and to be able to perform those things again as in #part 2. Is there a way to be
able to replace the original names?
?
Any help is deeply appreciated
?
Kind Regards
?
Seyit Ali
?
#############################################################################
?
MyData<-data.frame("Gender" = c("F", "F",
"F", "F", "M", "M",
"M", "M", "M", "M",
"F", "F"),
"Hand" = c("R", "R",
"L", "L", "R", "R",
"L", "L", "R",
"R", "L", "L"),
"Gr" = c(1, 2, 1, 2,
1, 2, 1, 2, 1, 2,
1, 2) )
MyData <- within(MyData, {
Gender <- factor(Gender)
Hand <- factor(Hand)
Gr <- factor(Gr)
}
)
?
str(MyData)
?
library(ggplot2)
?
################# Part 1 #########################################
?
MyT <- table(MyData$Gender, MyData$Hand)
print(MyT)
?
MyChi<- chisq.test(MyT)
print(MyChi)
dMyT <- data.frame(as.table(as.matrix(table(MyData$Gender, MyData$Hand, useNA
= "ifany"))))
name2<- c("Gender", "Hand", "Frequency")
names(dMyT) <- name2
?
ggplot(data = na.omit(dMyT), aes(fill=Hand, y=Frequency, x=Gender)) +
geom_bar(position="dodge", stat="identity")
?
################# Part 2 ################
?
# I want to be able to pass Gender and Hand as V1 and V2 , respectively to
# table, Chi-Square test and ggplot
?
V1 <- "Gender"
V2 <- "Hand"
?
MyT2 <- table(MyData$V1, MyData$V2)
?
print(MyT)
?
MyChi<- chisq.test(MyT)
print(MyChi)
dMyT <- data.frame(as.table(as.matrix(table(MyData$V1, MyData$V2, useNA =
"ifany"))))
name2<- c(V1, V2, "Frequency")
names(dMyT) <- name2
?
ggplot(data = na.omit(dMyT), aes(fill=V2, y=Frequency, x=V1)) +
geom_bar(position="dodge", stat="identity")
?
?
?
?
----------------------------------------------------
Dr. Seyit Ali KAYIS
Bolu Abant Izzet Baysal University, Faculty of Medicine
Department of Biostatistics and Medical Informatics
Bolu, Turkey
<mailto:s_a_kayis at yahoo.com <mailto:s_a_kayis at yahoo.com> >
s_a_kayis at yahoo.com <mailto:s_a_kayis at yahoo.com> ,
<mailto:s_a_kayis at hotmail.com <mailto:s_a_kayis at hotmail.com> >
s_a_kayis at hotmail.com <mailto:s_a_kayis at hotmail.com>
Tel: +90 374 254 30 32 Mobile: +90 535 587 1139
Greetings from Bolu, Turkey
------------------------------------------------------
?
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org <mailto:R-help at r-project.org> mailing list --
To UNSUBSCRIBE and more, see
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.
[[alternative HTML version deleted]]