web-dev-qa-db-fra.com

Convertir une image de données en vecteur (par lignes)

J'ai un dataframe avec des entrées numériques comme celle-ci

test <- data.frame(x = c(26, 21, 20), y = c(34, 29, 28))

Comment puis-je obtenir le vecteur suivant?

> 26, 34, 21, 29, 20, 28

J'ai pu l'obtenir en utilisant ce qui suit, mais je suppose qu'il devrait y avoir un moyen beaucoup plus élégant

X <- test[1, ]
for (i in 2:dim(test)[ 1 ]){
   X <- cbind(X, test[i, ])
   } 
61
Brani

Vous pouvez essayer as.vector(t(test)). Notez que si vous voulez le faire par colonnes, vous devez utiliser unlist(test).

115
teucer
c(df$x, df$y)
# returns: 26 21 20 34 29 28

si l'ordre particulier est important, alors:

M = as.matrix(df)
c(m[1,], c[2,], c[3,])
# returns 26 34 21 29 20 28 

Ou plus généralement:

m = as.matrix(df)
q = c()
for (i in seq(1:nrow(m))){
  q = c(q, m[i,])
}

# returns 26 34 21 29 20 28
9
doug

Vous pouvez essayer ceci pour obtenir votre combinaison:

as.numeric(rbind(test$x, test$y))

qui retournera:

26, 34, 21, 29, 20, 28