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?

hkolvs
  • 511
  • 3
  • 10

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
  • 4,161
  • 2
  • 23
  • 38
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
  • 80,151
  • 7
  • 17
  • 65