[R] Passing variable name

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sun Dec 27 23:58:21 CET 2020


Hello,

Or maybe V1 and V2 are variables that hold column names?
If so see thess StackOverflow posts [1], [2]. The trick is to use [[, 
not $ to extractthe columns.


V1 <- "Gender"
V2 <- "Hand"

MyT2 <- table(MyData[[V1]], MyData[[V2]])


[1]: 
https://stackoverflow.com/questions/18222286/dynamically-select-data-frame-columns-using-and-a-vector-of-column-names

[2]: 
https://stackoverflow.com/questions/1169456/the-difference-between-bracket-and-double-bracket-for-accessing-the-el


Hope this helps,

Rui Barradas


Às 21:48 de 27/12/20, Jim Lemon escreveu:
> Sorry, Bert, I also forgot to copy to the list.
> 
> Hi Seyet Ali,
> If you have created the data frame, you probably know that "Gender",
> "Hand" and "Gr" are the names of the vectors of values that are joined
> in the data frame "MyData". You now wish to change those names. I
> don't know why you would change the names to obscure ones like "V1",
> but I suggest a look at the "names" function. The answer to your
> question should now be clear to you.
> 
> Jim
> 
> On Mon, Dec 28, 2020 at 8:47 AM Jim Lemon <drjimlemon using gmail.com> wrote:
>>
>> Hi Seyet Ali,
>> If you have created the data frame, you probably know that "Gender",
>> "Hand" and "Gr" are the names of the vectors of values that are joined
>> in the data frame "MyData". You now wish to change those names. I
>> don't know why you would change the names to obscure ones like "V1",
>> but I suggest a look at the "names" function. The answer to your
>> question should now be clear to you.
>>
>> Jim
>>
>> On Mon, Dec 28, 2020 at 7:25 AM Seyit Ali KAYIS
>> <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> s_a_kayis using yahoo.com,  <mailto:s_a_kayis using hotmail.com> 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 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.
> 
> ______________________________________________
> 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.
>



More information about the R-help mailing list