使用函数向现有数据框添加新行

Adding new row to an existing data frame with a function

我想向现有数据框添加新行,使用如下函数:

df <- data.frame(num1 = numeric(),
                 num2 = numeric(),
                 int1 = integer(),
                 chr1 = character(),
                 stringsAsFactors=FALSE)

filler <- function () {
  newrow = c(0.1, 0.01, 100, "char")
  df[nrow(df)+1, ] <- newrow
  assign(x = "df", value = df, envir = .GlobalEnv)
}
filler

但什么也没有发生。

我想要得到以下输出:

> df
  num1 num2 int1 chr1
1  0.1 0.01  100 char

注意:我不想在一个函数中定义新的 table,因为我想之后用不同的 "newrow" 值重新运行该函数。

我相信这应该可以解决您的问题。我使用了一个通用的行,这样你就可以将新值传递给数据框。您可以通过执行以下操作来传递值向量:c(value1, value2, value3, value4)

df <- data.frame(num1 = numeric(),
                 num2 = numeric(),
                 int1 = integer(),
                 chr1 = character(),
                 stringsAsFactors=FALSE)

row_attempt <- c(1,2,3,"Master")

filler <- function(frame_to_attach, my_row){
    newrow = my_row
    data_frame <- rbind(frame_to_attach,my_row)
    colnames(data_frame) <- colnames(frame_to_attach)
   return(data_frame)
}

z <- filler(df, row_attempt)
z