Pre
Pre

Reputation: 111

Labelling Variables

I have a series of variables that fall under one related question: lets say there are 20 such variables in my dataframe, each one corresponds to an option on a MC question. They are titled popn1, popn2......popn20. I want to label each variable by its option, as an example: (popn1 = Everyone; popn2=Children)

I'm using the labelVector package.

Is there a way I can do it without writing out each variable name? Ex. is there a paste function I can use, such as

df2 <- Set_label(df1,
(paste0(popn, 1:20) =  "Everyone", "Children", .... "Youth"?)

Upvotes: 1

Views: 64

Answers (1)

Matt
Matt

Reputation: 7385

This can be done in base R quite easily. Here's some sample data (using columns instead of 20, to make it easier to view)

     popn1    popn2    popn3    popn4    popn5
1 -0.4085141 3.240716 2.730837 6.428722 8.015210
2  3.1378943 2.512700 2.021546 3.333371 5.654401
3  2.4073278 1.475619 2.449742 2.817447 6.295569

It looks like you already have your new column names in a character vector:

your_column_names <- c("Everyone", "Youth", "Someone", "Something", "Somewhere")

Then you just use the setNames argument on the column names for your data:

colnames(data) <- setNames(your_column_names, colnames(data))

   Everyone    Youth  Someone Something Somewhere
1 -0.4085141 3.240716 2.730837  6.428722  8.015210
2  3.1378943 2.512700 2.021546  3.333371  5.654401
3  2.4073278 1.475619 2.449742  2.817447  6.295569

Sample Data:

    data <- structure(list(popn1 = c(-0.408514139489243, 3.13789432899688, 
2.40732780606037), popn2 = c(3.24071608151551, 2.51269963339946, 
1.47561933493116), popn3 = c(2.73083728435832, 2.02154567048998, 
2.44974180329751), popn4 = c(6.42872215439841, 3.3333709733048, 
2.81744655980154), popn5 = c(8.0152099281755, 5.65440141443164, 
6.29556905855252)), class = "data.frame", row.names = c(NA, -3L
))

Upvotes: 1

Related Questions