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?
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)
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
))