Disons que j'ai le bloc de code suivant:
i results 1 2 2 4 3 6 4 8 5 10 6 12 7 14 8 16 9 18 10 20
Il cracherait [1] 2 4 6 8 10 12 14 16 18 20 p >
Comment puis-je transformer cela en un tableau qui montre la valeur i correspondante?
Donc, il afficherait ceci:
function2x <- function(x){
x * 2
}
results <- c()
for (i in seq(1, 10, by = 1)){
function2x(i)
results <- c(results, function2x(i))
}
results
3 Réponses :
Juste cbind une sequence.
x <- (1:10)*2 cbind(id=seq(x), x) # id x # [1,] 1 2 # [2,] 2 4 # [3,] 3 6 # [4,] 4 8 # [5,] 5 10 # [6,] 6 12 # [7,] 7 14 # [8,] 8 16 # [9,] 9 18 # [10,] 10 20
La sortie de l'OP est un vecteur et il peut être converti en un data.frame
data.frame(i = seq_along(results), results = results)
La function2x est vectorisée afin que vous puissiez éviter la boucle for et faire
data.frame(results = function2x(seq(1, 10))) # results #1 2 #2 4 #3 6 #4 8 #5 10 #6 12 #7 14 #8 16 #9 18 #10 20
Pas besoin de boucle
function2x (1:10)Votre sortie est un
vecteur. Vous pouvez simplement convertir en unematriceavecmatrice (résultats)qui serait une sortie à une colonne oudata.frame (i = seq_along (résultats), col1 = résultats)