Как перебрать несколько векторов - PullRequest
0 голосов
/ 01 декабря 2019

Совершенно новичок в R. Я какое-то время работал над этим, но не могу заставить его работать. Я пытаюсь создать столбец с именем peo$Tier. Он имеет 3 уровня: ("1", "2", "3")

tier1 <- c("ADP TOTAL SOURCE INC", "A 1 HR A DIVISION OF OASIS OUTSOURCING INC", "COADVANTAGE CORP", "INSPERITY INC", "OASIS ACQUISITION INC", "OASIS ACQUISITION INC A PAYCHEX CO", "OASIS DHR LLC", "OASIS OUTSOURCING CONTRACT II INC", "OASIS OUTSOURCING INC", "PAYCHEX BUSINESS SOLUTIONS LLC", "PAYCHEX HR OUTSOURCING LLC", "TRINET GROUP INC", "TRINET HR II HOLDINGS INC", "TRINET HR IV LLC")
tier2 <- c("ALLY HR LLC DBA MATRIXONESOURCE", "ALPHASTAFF GROUP INC", "CHOICE EMPLOYER SOLUTIONS INC", "CORNERSTONE CAPITAL GROUP INC", "DECISION HR", "FLORIDA RESOURCE MANAGEMENT LLC", "FRANKCRUM 2 INC", "IMPACT STAFF LEASING LLC", "JUSTWORKS EMPLOYMENT GROUP LLC", "KYMBERLY GROUP PAYROLL SOLUTIONS INC", "OCMI III INC DBA PEOPAYGO", "REGIS GROUP HOLDINGS INC", "SOUTH EAST PERSONNEL LEASING INC", "STAFFLINK OUTSOURCING INC", "THE S2 HR GROUP LLC", "TLR OF BONITA INC", "WORKFORCE BUSINESS SERVICES INC")

Если переменная peo$Tier находится в векторе tier1, будет присвоено «1». Если переменная peo$Tier находится в векторе tier2, будет присвоено «2». Остальное "3" будет назначено. Эти векторные значения взяты из другого столбца с именем peo$NAMED.INSURED, и в общей сложности насчитывается 208 уникальных символов.

Я попытался выполнить поднабор, но он работал только для первого значения в векторе. Я попытался использовать цикл for, но получил ошибку:

длинна объекта не кратна длине объекта

Не уверен, как выполнить эту задачу. Пожалуйста, помогите.

for (i in 1:length(peo$NAMED.INSURED)) {
    peo$Tier[i] <- ifelse(peo$NAMED.INSURED == tier1, 1, ifelse(peo$NAMED.INSURED == tier2, 2, 3))
}

1 Ответ

0 голосов
/ 01 декабря 2019

Мы также можем использовать арифметику для перекодирования значений

peo$Tier <- with(peo,  as.integer(factor(1 +  2* NAMED.INSURED %in% tier1 +
          4 * NAMED.INSURED %in% tier2)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...