在R中使用gsub删除数据框中的特定字母
delete specific letter in data frame using gsub in R
我有一个这样的数据框:
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)
如何解决这个问题?谢谢
根据显示的示例,这应该会给出预期的输出
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))
怎么样:
train1$val<-gsub("green_0.+","green_0",train1$val)
我有一个这样的数据框:
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)
如何解决这个问题?谢谢
根据显示的示例,这应该会给出预期的输出
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))
怎么样:
train1$val<-gsub("green_0.+","green_0",train1$val)