【发布时间】:2020-12-01 00:27:21
【问题描述】:
我正在尝试将行附加到用户定义函数内的数据框。我之前在 for 循环中没有困难地做到过,如下:
t1 <- data.frame(a=character(),
b=numeric())
for(i in 1:2){
tmp.df <- data.frame(a="apple", b=i)
t1 <- rbind(t1,tmp.df)
}
我得到一个包含两个观察结果的数据框。
但是当我尝试在函数中做类似的事情时,它不起作用。我已经尝试调试该函数,并且在 rbind 步骤它似乎只是退出该函数而不执行该步骤。所以下面的代码以原始的空数据框结束。
t1 <- data.frame(a=character(),
b=numeric())
create.rows <- function(id, it){
if(it==1){
tmp.df <- data.frame(a=id, b=it)
t1 <- rbind(t1,tmp.df)
}else{
tmp.df <- data.frame(a=id, b=99)
t1 <- rbind(t1,tmp.df)
}
}
为什么会发生这种情况,我可以做些什么来解决它?
请注意,我事先不知道数据框中会有多少行,因此我无法直接写入特定行。
【问题讨论】:
-
“它不起作用”。它是什么”。仅仅创建一个函数没有任何作用。