0

How do I generate a variables as below by just entering a number into a function (in this case 5)?

  rank  DATE  OP
1    1 DATE1 OP1
2    2 DATE2 OP2
3    3 DATE3 OP3
4    4 DATE4 OP4
5    5 DATE5 OP5
> 

Which is the easiest way?

hklovs
  • 611
  • 1
  • 4
  • 16

2 Answers2

1

You can use paste0:

create_df <- function(n){
  data.frame(rank = 1:n, DATE = paste0("DATE", 1:n), OP = paste0("OP", 1:n))
}
create_df(5)
Clemsang
  • 5,053
  • 3
  • 23
  • 41
0

Here is a base R solution using paste0:

df <- cbind(df[1],sapply(names(df)[-1], paste0, 1:nrow(df)))

such that

> df
  rank  DATE  OP
1    1 DATE1 OP1
2    2 DATE2 OP2
3    3 DATE3 OP3
4    4 DATE4 OP4
5    5 DATE5 OP5

DATA

df <- structure(list(rank = 1:5, DATE = c(NA, NA, NA, NA, NA), OP = c(NA, 
NA, NA, NA, NA)), class = "data.frame", row.names = c(NA, -5L
))
ThomasIsCoding
  • 96,636
  • 9
  • 24
  • 81