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

У меня есть такой фрейм данных:

Dataframe

Я бы хотел, чтобы он был таким:

What I want

Как мне это сделать?Длина столбцов будет отличаться для каждого столбца, поэтому я думаю, что это не может быть датафрейм, может быть список списков?

Извините за картинки, я не достаточно сообразителен, чтобы поместить код здесь:(

Заранее спасибо

Нат

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Вы также можете сделать что-то вроде:

library(data.table)

df_new <- dcast(setDT(df), Column2 ~ Column1)[, lapply(.SD, na.omit)][!duplicated(A, B)][, Column2 := NULL]

Это даст вам фрейм данных:

    A  B
1: 12  6
2: 23  8
3: 30 45
0 голосов
/ 03 декабря 2018

что-то вроде этого сделало бы работу:

# data
example_df <- data.frame(col1 = c('A', 'A', 'A', 'B','B','B'),
                         col2 = 1:6)


# split into list of data.frames by value of col1
# and apply a function to get unique values of col2
lapply(
  split(example_df, example_df$col1), 
  function(x) unique(x$col2)
  )

Это вернет список, подобный этому:

$A
[1] 1 2 3

$B
[1] 4 5 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...