【问题标题】:Pass a function input as column name to data.frame function将函数输入作为列名传递给 data.frame 函数
【发布时间】:2023-02-05 01:26:45
【问题描述】:

我有一个接受字符输入的功能。在函数中,我想使用 data.frame() 函数。在 data.frame() 函数中,一列名称应该是函数的字符输入。

我这样试过但没有用:

frame_create <- 函数(数据,字符输入){

... some_vector <- c(1:50)

temp_frame <- 数据.frame(字符输入= some_vector, ...)

返回(temp_frame)

}

【问题讨论】:

    标签: r dataframe function rstudio


    【解决方案1】:

    要么使用names 来分配,要么使用setNames 作为= 将不允许对= 的 lhs 进行评估。在包函数中,即tibblelst,它可以用:=!!创建

    frame_create <- function(data, character_input){
        some_vector <- 1:50
        temp_frame <- data.frame(some_vector)
        names(temp_frame) <- character_input
        return(temp_frame)
    }
    

    【讨论】:

    • 谢谢,成功了。我使用了 colnames() 函数,因为有多个列要命名。
    • @3wF23Xyj colnamesnames 将适用于 data.frame,因为 data.frame 中的 names 与列名相同(尽管在 matrix 中不同)
    【解决方案2】:

    您能否解释一下使用函数创建新数据框列的要求?如果有一个数据框 df 并且你想制作一个附加了新列的副本,那么简单的解决方案是:

    df2 <- df
    df2$new_col <- 1:50
    

    【讨论】: