我有一个工作正常的循环,但输出只在控制台中返回,数据框仍未修改。
示例代码:
df <- cbind(x,y)
myfun <- function(z){
counter <- 0
for (i in 1:z) {
counter <- 1 + counter
for (j in 1:5) {
counter <- 1 + counter
if (condition_a){
df[counter,2] <- 0
}
if (condition_b){
df[counter,2] <- 1
}
}
}
return(head(df))
newdf <- df[,2]
}
我错过了什么?
值是int类,这是否重要?
答案 0 :(得分:0)
如果你真的想要更改某个功能之外的内容,那么你可以使用ABCTreeWalker
来改变你职能之外df[counter,2] <<- 1
的值。
但是,这并不是很好的做法,因为每次运行该功能时,最终都会对df
数据框进行更改。而是看看返回值。此外,您可以执行一些简化而不是循环来使代码运行得更快。我附上了一个例子,告诉你如何做你想做的事。
df