удалить конкретную букву во фрейме данных, используя gsub в R

r gsub

84 просмотра

2 ответа

У меня есть фрейм данных, как это:

val                  value
a_green_0            0.1
a_green_01           0.2
....
a_green_0100         0.3
b_green_45            0.1
b_green_451           0.2
...
b_green_45100         0.2

Я хотел бы удалить число 1,2,3, ... 100, чтобы получить вывод, как это:

val                  value
a_green_0            0.1
a_green_0            0.2
....
a_green_0            0.3
b_green_45           0.1
b_green_45           0.2
...
b_green_45           0.2

Я использовал gsub, как это, но это не сработало:

gsub("*green_0*", "green_0",train1)

Как это исправить? Благодарю.

Автор: user30985 Источник Размещён: 08.11.2019 11:15

Ответы (2)


1 плюс

Решение

Что о:

train1$val<-gsub("green_0.+","green_0",train1$val)
Автор: kwicher Размещён: 20.08.2016 11:57

1 плюс

Исходя из показанного примера, это должно дать ожидаемый результат

sub("_(0|[1-9]{2})\\d+", "_\\1", df1$val)
#[1] "a_green_0"  "a_green_0"  "a_green_0"  "b_green_45" "b_green_45"
#[6] "b_green_45"

данные

df1 <- structure(list(val = c("a_green_0", "a_green_01", "a_green_0100", 
"b_green_45", "b_green_451", "b_green_45100"), value = c(0.1, 
0.2, 0.3, 0.1, 0.2, 0.2)), .Names = c("val", "value"), 
 class =  "data.frame", row.names = c(NA, -6L))
Автор: akrun Размещён: 20.08.2016 11:57
Вопросы из категории :
32x32