Поместите список в столбец фрейма данных - PullRequest
1 голос
/ 15 апреля 2020

Прошу прощения за мой английский sh:)

Мне нужно определить, есть ли в адресе специальный символ (переменная "no_trans", 1: если есть один или несколько специальных символов , иначе 0) и в следующем столбце ("carac_no_trans") мне нужно поместить список специальных символов, поэтому, если есть несколько специальных символов, мне нужно увидеть все в этом столбце.

Мой код ( liste_cara c - это список не специальных символов. Мне нужно обнаружить все символы, не включенные в этот список):

new <- data_adresse %>% 
  group_by(e_street_name) %>% 
  mutate(
    no_trans = ifelse(
      length(
        setdiff(
          unlist(strsplit(e_street_name,"")),
          liste_carac
        )
      ) >= 1,
      1,
      0
    ),
    carac_no_trans = ifelse(
      length(
        as.list(
          setdiff(
            unlist(strsplit(e_street_name,"")),
            liste_carac
          )
        )
      ) >= 1,
      as.list(
        setdiff(
          unlist(strsplit(e_street_name,""))
          liste_carac
        ),
      ),
      "None"
    )
  )

Но я вижу только первый специальный символ и не все ..

enter image description here

Если вы можете мне помочь:)

Хорошего дня! Elise

1 Ответ

0 голосов
/ 15 апреля 2020

вы можете использовать paste с параметром collaps = ", ", чтобы свести список в одну строку, подобную этой

new <- data_adresse %>% 
  group_by(e_street_name) %>% 
  mutate(
    no_trans = ifelse(
      length(
        setdiff(
          unlist(strsplit(e_street_name,"")),
          liste_carac
        )
      ) >= 1,
      1,
      0
    ),
    carac_no_trans = ifelse(
      length(
        as.list(
          setdiff(
            unlist(strsplit(e_street_name,"")),
            liste_carac
          )
        )
      ) >= 1,
      paste(
        setdiff(
          unlist(strsplit(e_street_name,"")),
          liste_carac
        ), collapse = ", "
      ),
      "None"
    )
  )

Надеюсь, это поможет !!

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