Создать новый столбец на основе другого столбца в R - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть следующая таблица:

Name   ID   Level
Name1   A     1
Name2   B     2
Name3   C     3
Name4   D     1
Name5   E     2
Name6   F     1

Кто-нибудь знает, как я могу создать еще один столбец в R, который по сути смотрит на Col "Уровень", где я могу выделить, что конкретная строка принадлежит уровню1 над ним.например, в приведенном выше примере Name2 и Name 3 принадлежат к той же группе, что и Name1;Имя 5 относится к группе Имя 4.

Я могу сделать это в Excel, используя операторы if, но было бы лучше, если бы я мог делать все это в R. Если нет, то проще создать группы в Excel, а затем экспортировать их в R.

Я бы хотел, чтобы это выглядело следующим образом:

Name   ID   Level  Groupings
Name1   A     1    Name1
Name2   B     2    Name1
Name3   C     3    Name1
Name4   D     1    Name4
Name5   E     2    Name4
Name6   F     1    Name6
etc     etc   etc  etc 

1 Ответ

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

Эта часть кода просто для воссоздания вашего примера набора данных:

data <- data.frame(Name = paste0('Name',1:6),
                   ID = LETTERS[1:6],
                   Level = c(1,2,3,1,2,1),
                   stringsAsFactors = FALSE) 

, тогда как следующая часть является одним из возможных способов решения вашей проблемы, используя функцию na.locf() из zoo package:

library(zoo)
data<span class="math-container">$Groupings <- ifelse(data$</span>Level == 1, data<span class="math-container">$Name, NA)    
data$</span>Groupings <- na.locf(data$Groupings)

Для дальнейшего вопроса о проблемах с кодом, я предлагаю вам публиковать сообщения о переполнении стека вместо Data Science.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...