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

时间:2016-04-12 20:36:25

标签: r function assign

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

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

注意:我不想在函数中定义新表,因为我想在事后用不同的“newrow”值重新运行该函数。

1 个答案:

答案 0 :(得分:2)

我相信这应该适合你。我使用了泛型行,因此您可以将新值传递给数据框。您可以通过执行以下操作传递值向量: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