Создание новых столбцов в фрейме данных с использованием R - PullRequest
0 голосов
/ 03 июля 2018

У меня есть фрейм данных, приведенный ниже;

NPA_Jan Risk_Jan NAP_Feb Risk_Feb
Yes     High     No      Medium
No       Low      No      Low
No       High     Yes     High
Yes      High     Yes     High
Yes      Low      No      Low

Я ожидаю вывода ниже:

NPA_Jan_New   Risk_Jan_New NPA_Feb_New Risk_Feb_New
1             1            0              0
0             0            0              0
0             1            1              1
1             1            1              1
1             0            0              0

Везде, где есть NPA, указано «Да», а Риск как «Высокий», там должен быть тег 1.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Опция использует

out <- +(sapply(df, `%in%`, c("Yes", "High")))
colnames(out) <- paste0(colnames(df), "_new")
out
#     NPA_Jan_new Risk_Jan_new NAP_Feb_new Risk_Feb_new
#[1,]           1            1           0            0
#[2,]           0            0           0            0
#[3,]           0            1           1            1
#[4,]           1            1           1            1
#[5,]           1            0           0            0
0 голосов
/ 03 июля 2018

Самый простой способ, как сказал Давид,

df.new <- as.data.frame((df == "Yes" | df == "High") + 0)
colnames(df.new) <- paste(colnames(df.new), '_new', sep='')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...