我正在使用代码,一切运行正常,但是当我将一些值大于4时,会发生错误(错误=新列会在现有列之后留下漏洞)。
为了简化我使这段代码重现了这种奇怪的行为。
strange <- function(number = 1, order = 1) {
df <- data.frame(0, order, NA)
colnames(df) <- c(number, "order", "diff")
#Next line throws an error when number > 4
df[nrow(df) + 1, number] <- 1
print(paste0("Number ", number, " ran fine"))
return(df)
}
for (i in 1:10) df <- strange(number = i)
在输入此问题时,我会弄清楚如何停止错误,但我不明白为什么strange()
仅在数字&lt; = 4时有效。
使用我刚刚更改为的任何数字:
df[nrow(df) + 1, as.character(number)] <- 1