[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