Dear R users, I have a dataframe that contains several variables, among which 105 correspond to scores on certain trials. Unfortunately, when I imported this dataframe into R, I realised that the variable names corresponding to each trial begin with digits, which violates R naming conventions. I am trying to relabel these variables by adding a 'v' as a prefix to each of them, I'd like to use tidyverse, but I am struggling with this process of renaming. When I run this chunk of code, no error occurs but my variables are not renamed. I'm fairly new to R and I can't understand what I'm doing wrong. ```{r} behavioral_df <- behavioral_df %>% rename_with(.fn = ~paste0("v"), starts_with('^\\d')) ``` I appreciate if you can help. Best, Anne [[alternative HTML version deleted]]
Hello, I think you have to use 'matches' instead of 'starts_with', I believe starts_with does not accept a regular expression whereas matches does. On Tue, Oct 5, 2021 at 12:15 PM Anne Zach <anne.zach.zach at gmail.com> wrote:> Dear R users, > > I have a dataframe that contains several variables, among which 105 > correspond to scores on certain trials. Unfortunately, when I imported this > dataframe into R, I realised that the variable names corresponding to each > trial begin with digits, which violates R naming conventions. > > I am trying to relabel these variables by adding a 'v' as a prefix to each > of them, I'd like to use tidyverse, but I am struggling with this process > of renaming. When I run this chunk of code, no error occurs but my > variables are not renamed. I'm fairly new to R and I can't understand what > I'm doing wrong. > > ```{r} > > behavioral_df <- behavioral_df %>% rename_with(.fn = ~paste0("v"), > starts_with('^\\d')) > > ``` > > I appreciate if you can help. > > Best, > Anne > > [[alternative HTML version deleted]] > > ______________________________________________ > 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]]
Hi Anne, It would be helpful to include at least part of behavioral_df for people to understand the issue better. Please do the following in R and post the output. dput( head( behavioral_df) ) Also, set your email to plain text as HTML is stripped from emails on this list. Best, Eric On Tue, Oct 5, 2021 at 7:15 PM Anne Zach <anne.zach.zach at gmail.com> wrote:> Dear R users, > > I have a dataframe that contains several variables, among which 105 > correspond to scores on certain trials. Unfortunately, when I imported this > dataframe into R, I realised that the variable names corresponding to each > trial begin with digits, which violates R naming conventions. > > I am trying to relabel these variables by adding a 'v' as a prefix to each > of them, I'd like to use tidyverse, but I am struggling with this process > of renaming. When I run this chunk of code, no error occurs but my > variables are not renamed. I'm fairly new to R and I can't understand what > I'm doing wrong. > > ```{r} > > behavioral_df <- behavioral_df %>% rename_with(.fn = ~paste0("v"), > starts_with('^\\d')) > > ``` > > I appreciate if you can help. > > Best, > Anne > > [[alternative HTML version deleted]] > > ______________________________________________ > 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]]
On 04/10/2021 2:02 p.m., Anne Zach wrote:> Dear R users, > > I have a dataframe that contains several variables, among which 105 > correspond to scores on certain trials. Unfortunately, when I imported this > dataframe into R, I realised that the variable names corresponding to each > trial begin with digits, which violates R naming conventions. > > I am trying to relabel these variables by adding a 'v' as a prefix to each > of them, I'd like to use tidyverse, but I am struggling with this process > of renaming. When I run this chunk of code, no error occurs but my > variables are not renamed. I'm fairly new to R and I can't understand what > I'm doing wrong. > > ```{r} > > behavioral_df <- behavioral_df %>% rename_with(.fn = ~paste0("v"), > starts_with('^\\d')) > > ```You should also consider not renaming the columns. R allows non-standard names to be used as long as you quote them somehow. For example, behavioral_df[, "50%"] will get you the column with name "50%", as will behavioral_df$`50%` I suspect most tidyverse functions will be fine with the `50%` style of quoting. Duncan Murdoch
Hi Anne, As mentioned above, you may have to do nothing. Here is an example that might clarify that: azdat<-read.table(text="subject 1 2 3 1 10 20 30 2 11 22 33", header=TRUE,stringsAsFactors=FALSE) azdat subject X1 X2 X3 1 1 10 20 30 2 2 11 22 33 As you can see, R simply prepends an "X" to numeric names. If you really want a "v": names(azdat)<-gsub("X","v",names(azdat)) Jim Always happy to help an ANZAC (bad joke) On Wed, Oct 6, 2021 at 3:15 AM Anne Zach <anne.zach.zach at gmail.com> wrote:> > Dear R users, > > I have a dataframe that contains several variables, among which 105 > correspond to scores on certain trials. Unfortunately, when I imported this > dataframe into R, I realised that the variable names corresponding to each > trial begin with digits, which violates R naming conventions. > > I am trying to relabel these variables by adding a 'v' as a prefix to each > of them, I'd like to use tidyverse, but I am struggling with this process > of renaming. When I run this chunk of code, no error occurs but my > variables are not renamed. I'm fairly new to R and I can't understand what > I'm doing wrong. > > ```{r} > > behavioral_df <- behavioral_df %>% rename_with(.fn = ~paste0("v"), > starts_with('^\\d')) > > ``` > > I appreciate if you can help. > > Best, > Anne > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.