Заполнители в R - PullRequest
       1

Заполнители в R

1 голос
/ 22 февраля 2020

У меня есть набор данных, где различные значения могут быть классифицированы только по появлению di git 1. Все значения состоят из 5 цифр. Теперь мне нужно создать новую переменную, которая группирует значения. Мой вопрос сейчас заключается в том, существует ли способ, аналогичный Excel, для установки заполнителей для идентификации тех значений, которые начинаются с 1.

. То, что я до сих пор делал, это:

w $ r <- ifelse (w $ f == 1 ****, 1, 0) </p>

Здесь я хотел отфильтровать все значения, где 1 - первый ди git. Примечательно, что некоторые значения имеют повторное выделение 1, то есть на 2 цифры. Все переменные имеют либо 1, либо ноль. Примерами данных являются 00000, 00001, 11100 и др. c. Цель состоит в том, чтобы создать переменную для каждого 1 в другой позиции. Например, первая di git должна быть переменной, но также и переменной, где 1 встречается, поскольку первое и третье di git необходимо учитывать в созданной переменной 1 и переменной 3.

1 Ответ

0 голосов
/ 22 февраля 2020

РЕДАКТИРОВАТЬ :

Не совсем уверен, что вы этого хотите, но вот попытка:

Данные :

Поскольку у вас также есть данные с ведущими нулями, вам необходимо преобразовать их в символ:

df <- data.frame(w = c("00000", "00001", "11100", "10010", "11000", "10000", "10100", "00100", "10001"))

Решение :

# variable for "1" in first position:
df$r1 <- ifelse(grepl("^1", df$w), 1, 0)

# variable for "1" in second position:
df$r2 <- ifelse(grepl("^\\d1", df$w), 1, 0)

# variable for "1" in third position:
df$r3 <- ifelse(grepl("^\\d{2}1", df$w), 1, 0)

# variable for "1" in fourth position:
df$r4 <- ifelse(grepl("^\\d{3}1", df$w), 1, 0)

# variable for "1" in fifth position:
df$r5 <- ifelse(grepl("^\\d{4}1", df$w), 1, 0)

Результат :

df
      w r r2 r3 r4
1 00000 0  0  0  0
2 00001 0  0  0  1
3 11100 1  1  1  0
4 10010 1  0  0  0
5 11000 1  1  0  0
6 10000 1  0  0  0
7 10100 1  0  1  0
8 00100 0  0  1  0
9 10001 1  0  0  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...