[R] Passing variable name
Seyit Ali KAYIS
@ey|t@||@k@y|@ @end|ng |rom |bu@edu@tr
Mon Dec 28 19:31:59 CET 2020
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 using gmail.com]
Sent: Monday, 28 December 2020 12:08 AM
To: seyitali.kayis using ibu.edu.tr
Cc: R-help <r-help using 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 using ibu.edu.tr <mailto:seyitali.kayis using 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 using yahoo.com <mailto:s_a_kayis using yahoo.com> > s_a_kayis using yahoo.com <mailto:s_a_kayis using yahoo.com> , <mailto:s_a_kayis using hotmail.com <mailto:s_a_kayis using hotmail.com> > s_a_kayis using hotmail.com <mailto:s_a_kayis using hotmail.com>
Tel: +90 374 254 30 32 Mobile: +90 535 587 1139
Greetings from Bolu, Turkey
------------------------------------------------------
�
[[alternative HTML version deleted]]
______________________________________________
R-help using r-project.org <mailto:R-help using 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]]
More information about the R-help
mailing list