Объединение двух столбцов путем скрещивания в большом фрейме данных - PullRequest
0 голосов
/ 26 апреля 2020

Предположим, что этот фрейм данных:

x<-data.frame(id1=c("a","b","c"),vals1=1:3)

Как мне добиться следующего:

  NEW 
1   a
2   1
3   b
4   2
5   c
6   3

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Обычно не рекомендуется размещать данные смешанных типов в одном столбце.

Однако, чтобы ответить на вопрос, вы можете транспонировать фрейм данных и использовать c, чтобы получить выходные данные в виде одного вектора, который используется для создания фрейма данных с одним столбцом.

data.frame(new = c(t(x)))

#  new
#1   a
#2   1
#3   b
#4   2
#5   c
#6   3
1 голос
/ 26 апреля 2020

Базовый раствор R:

# Data: x => data.frame
x <- data.frame(id1 = c("a","b","c"), vals1 = 1:3)

# Allocate memory -- create empty character vector: NEW => character vector:
NEW <- vector("character", (ncol(x) * nrow(x)))

# Store the solution: y => data.frame
y <- data.frame(NEW = as.character(unlist(sapply(seq_len(nrow(x)), function(i){
      c(as.character(x$id1[i, drop = TRUE]), as.character(x$vals1[i, drop = TRUE]))
        }
      )
    )
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...