forループ内で呼び出すことによって、関数myfunction
内にデータフレームを構築しようとしています。r:forループで呼び出される関数のデータフレームへの列の追加
この
df = data.frame("Indices" = c("a", "b"))
myfunction = function(i){
df = cbind(df, as.data.frame(rbind(i,i^2)))
}
for(i in 1:10){
myfunction(i)
}
私の目的は、forループの各反復を通じてdf
に1つの以上の列を追加することであるように見えます。 しかし、残念ながらdf
は空のままです(つまり、それ以上の列は追加されません)。
V1 V1 V1 V1 V1 V1 V1 V1 V1 V1
a 1 2 3 4 5 6 7 8 9 10
b 1 4 9 16 25 36 49 64 81 100
は私が間違って何をやっている:
だから、最後には次のようになりますか?
ループに 'df < - 'を追加してください。あなたは何かを忘れてしまった。 – lmo
この特定の例では、ループ構成体は必要ありません。 'df < - cbind(df、as.data.frame(rbind(1:n、(1:n)^ 2)))' –
'mylist = lapply(setNames(1:10、1:10)、function( i)c(i、i^2));最後のステップとして、df [names(mylist)] = mylist'または 'df = cbind(df、mylist)'を指定します。 – Frank