Я учил себя R с нуля, в основном предпринимая что-то, затем читая подобные посты и методом проб и ошибок, основанных на этом. Иногда я ударяюсь о стену и протягиваю руку.
Я врезался в стену. У меня установлен dplyr 0.7. У меня есть столбец со столбцом - назовите его contract_key
- я добавил, применив mutate (coalesce ()) к трем другим столбцам в таблице. Вот пример данных:
product <- c("655393265191","655393265191","168145850127","168145850127","350468621217","350468621217","977939797847","NA","928893912852")
supplier <- c("person5","person3","person10","person5","person11","person5","person11","person14","person5")
vendor <- c("org2","org3","org3","org2","org1","org2","org1","org5","org2")
quantity <- c(7,5,6,1,2,1,18,2,2)
gross <- c(0.0419,0.0193,0.0439,0.0069,0.0027,0.0055,0.0233,NA,0.0004)
df <- data_frame(product,supplier,vendor,quantity,gross)
Вот как я создал contract_key
:
df <- df %>%
mutate(contract_key = coalesce(product,supplier,vendor))
Теперь я хочу добавить еще один столбец, который классифицирует содержимое contract_key
в зависимости от того, какой из трех столбцов предоставил содержимое (через coalesce ()). Так, например, если contract_key = "person5", новый столбец, contract_level, будет "поставщиком". И contract_key = "org2" будет отображаться на contract_level = "vendor" и т. Д.
По сути, я буду использовать contract_level
как переменную соединения с другим тибблом.
Я в тупике. Я пробовал if_else
и вижу, что не стоит пытаться case_when
(потому что он внутри mutate ()). Я также безуспешно пытался вложить if_else
.
Вероятно, это базовый синтаксис R, которого я просто не знаю. Что-то связанное с точечной нотацией и грамматикой. Если кто-то предоставит ответ, я буду прослеживать, пока не выясню, что вы сделали. (И я выучу новый урок в R!)
Спасибо!
product
измените"NA"
наNA
, чтобы оно было правильно закодировано как отсутствующее значение, а не как строка"NA"
. - person eipi10   schedule 12.09.2017