我想使用如下函数向现有数据框添加新行:
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”值重新运行该函数。
答案 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