Как добавить каждое значение одного столбца ниже соответствующей строки другого столбца, не путая порядок в R - PullRequest
0 голосов
/ 07 сентября 2018

Я не могу найти решение / ответ на этот вопрос, поэтому спрашиваю вас, ребята: -)

У меня есть следующая задача слияния, представленная в примере ниже: Как добавить каждое значение (каждое произвольное, сортировка невозможна) одного столбца под соответствующей строкой другого столбца, не смешивая порядок в R? Я не могу отсортировать столбцы, значения являются произвольными. Это просто пример, чтобы прояснить систему.

Дата до:

         column1                column2
valueColumn1row1       valueColumn2row1
valueColumn1row2       valueColumn2row2
               .                      .
               .                      .
               .                      .

Дата кадра после:

          finalcolumn            
     valueColumn1row1
     valueColumn2row1       
     valueColumn1row2
     valueColumn2row2 
               .                      
               .                      
               .                      

Есть предложения? Заранее спасибо!

1 Ответ

0 голосов
/ 07 сентября 2018

Одним из способов является использование matrix[matrix] подмножества:

# create example data
df <- data.frame(
    col1 = letters[1:6],
    col2 = letters[21:26],
    stringsAsFactors = F
)

# convert data to a matrix
dfm <- as.matrix(df)

# create a subsetting-matrix of the elements that you want, in the order that you want
j <- ncol(dfm)
sub <- matrix(c(rep(1:nrow(df), each=j), rep(1:j, nrow(df))), ncol=2)

# create the desired column
dfm[sub]

Пример данных

> df
  col1 col2
1    a    u
2    b    v
3    c    w
4    d    x
5    e    y
6    f    z

Результат

> data.frame(dfm[sub])
   dfm.sub.
1         a
2         u
3         b
4         v
5         c
6         w
7         d
8         x
9         e
10        y
11        f
12        z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...