Удалить префикс из некоторых значений в столбце данных - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь стандартизировать столбец в большом кадре данных, где некоторые значения имеют префикс "6016", а некоторые нет.Мне нужно удалить все префиксы "6016", но я не знаю, как это сделать.Я новичок в R, так что извините, если это просто.

Вот фрагмент фрейма данных:

    A  
1   6016200703543489  
2   200726343459  
3   200403843687  
4   6016200784256494  
5   200704521983

Мне нужно, чтобы этот столбец был таким, не затрагивая другие столбцы:

    A  
1   200703543489  
2   200726343459  
3   200403843687  
4   200784256494  
5   200704521983

Ответы [ 2 ]

2 голосов
/ 17 июня 2019

Или вы можете сделать:

sub("^6016", "", df$A)

[1] "200703543489" "200726343459" "200403843687" "200784256494" "200704521983"

Здесь он удаляет ровно 6016 из начала строк.

0 голосов
/ 17 июня 2019

Мы можем подстроку

df1$A <- substring(df1$A, nchar(df1$A) - 11, nchar(df1$A))
df1$A
#[1] "200703543489" "200726343459" "200403843687" "200784256494" "200704521983"

Или с sub

sub(".*(.{12})$", "\\1", df1$A)
#[1] "200703543489" "200726343459" "200403843687" "200784256494" "200704521983"

Оба метода работают, даже если префикс другой и более общий

Если нам нужно удалить '6016'

library(stringr)
str_remove(df1$A, '^6016')
[#1] "200703543489" "200726343459" "200403843687" "200784256494" "200704521983"

Или другой вариант - создать новый набор данных вручную

df1$A <- c("200703543489", "200726343459", "200403843687", 
          "200784256494", "200704521983")

ПРИМЕЧАНИЕ. Показано 4 метода (общие /точный / ручной).

данные

df1 <- structure(list(A = c(6016200703543489, 200726343459, 200403843687, 
6016200784256494, 200704521983)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...