Как я могу избавиться от скобок в переменной в R? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь привести в порядок фрейм данных. Он включает в себя переменную под названием «питание», которая выглядит следующим образом:

nutrition
[51.5, 0.0, 13.0, 0.0, 2.0, 0.0, 4.0]
[173.4, 18.0, 0.0, 17.0, 22.0, 35.0, 1.0]
[269.8, 22.0, 32.0, 48.0, 39.0, 27.0, 5.0] 

Впоследствии все остальные данные в столбце «Питание» иметь скобки в начале и в конце. Я хотел бы, чтобы эти 3 клетки и все остальные клетки в столбце питания выглядели так (с соответствующими данными):

nutrition
51.5, 0.0, 13.0, 0.0, 2.0, 0.0, 4.0
173.4, 18.0, 0.0, 17.0, 22.0, 35.0, 1.0
269.8, 22.0, 32.0, 48.0, 39.0, 27.0, 5.0 

заранее спасибо.

1 Ответ

1 голос
/ 24 апреля 2020

В базе R:

gsub("[","",gsub("]","",nutrition)

Это имеет наименьшее возможное количество регулярных выражений, потому что я ненавижу это дерьмо. Но если оптимизация кода / скорость - проблема, вы должны изучить регулярное выражение для захвата «[» и «]» одновременно.

В противном случае

gsub(pattern,replacement,variable) просто принимает первый аргумент то, что вы хотите заменить, второе как замена (в вашем случае пустой символ) и строка, из которой его следует заменить.

В потоке это может выглядеть так:

library(dplyr)

data %>%
mutate(nutrition = gsub("[","",gsub("]","",nutrition)))

Благодаря @Martin Gal мы теперь также знаем регулярное выражение:

"(\ [| \])"

, поэтому

library(dplyr)

data %>%
mutate(nutrition = gsub("(\\[|\\])","",,nutrition))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...