我有我的程序遇到的問題的一個小的可重現版本。通過R中的嵌套函數更新數據框
我的代碼的結構涉及嵌套函數,類似於下面顯示的函數,只是更復雜。
x <- data.frame(c(1:5),c(0))
colnames(x) <- c("val1", "val2")
foo <- function() {
for(i in 1:length(x[,1])) {
bar(i)
}
print(x)
}
bar <- function(i) {
if(x[i,2] == 0) {
x[i,2] <- 1
print(x[i,])
}
return(x)
}
>foo()
val1 val2
1 1 1
val1 val2
2 2 1
val1 val2
3 3 1
val1 val2
4 4 1
val1 val2
5 5 1
val1 val2
1 1 0
2 2 0
3 3 0
4 4 0
5 5 0
因此,結果顯示,該值不是從bar()函數返回以更新數據幀。
爲了將更新的表格返回給foo()函數,需要更改哪些內容?
在此先感謝。
你能簡單地解釋一下你想從你的函數中得到什麼輸出嗎?我想我有一個答案,但我不太確定我知道你想要什麼作爲解決方案。 – SeldomSeenSlim
感謝您的回覆,我正在尋找一個更新的數據框x,其中第二列的所有值都將爲1. – user7200033
而在更復雜的示例中,我希望您希望有條件地更改第二列? – SeldomSeenSlim