0
votes

Comment ajouter des valeurs en séquence dans la sortie de R?

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

r

2 commentaires

Pas besoin de boucle function2x (1:10)


Votre sortie est un vecteur . Vous pouvez simplement convertir en une matrice avec matrice (résultats) qui serait une sortie à une colonne ou data.frame (i = seq_along (résultats), col1 = résultats)


3 Réponses :


0
votes

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


0 commentaires

0
votes

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)


0 commentaires

0
votes

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


0 commentaires