如何替换R中一列中的所有字符串?

How to replace all strings in a column in R?

我有一列数据,我试图在其中删除所有非数字字符 数据如下:

Col1
Name=12_Represse, Name=12_Represse, Name=12_Represse, Name=13_Heterochrom/l, Name=13_Heterochrom/lo
Name=13_Heterochrom/lo
Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx 

我期望的输出是:

Col1
12,12,12,13,13
13
11,11,11,11,11,11

我尝试从其他旨在删除特定字符串的问题中进行改编。 例如尝试:

test <- str_replace_all(data$col1,"#[a-z,A-Z]*","")

然而,这个或我尝试过 gsub 的类似改编似乎不起作用。我是 R 的新手,所以任何指导都会有所帮助。

你可以试试:

gsub("[A-Z]|[a-z]|[=]|\s|_|/", "", Col1)

因此,如果 Col1 与您的匹配:

Col1 <- c("Name=12_Represse, Name=12_Represse, Name=12_Represse, Name=13_Heterochrom/l, Name=13_Heterochrom/lo", 
"Name=13_Heterochrom/lo", "Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx, Name=11_Weak_Tx "
)

你得到

gsub("[A-Z]|[a-z]|[=]|\s|_|/", "", Col1)
#> [1] "12,12,12,13,13"    "13"                "11,11,11,11,11,11"

这里有两种只保留数字的方法。

1. 基础 R.

gsub("[^[:digit:],]", "", data$col1)
#[1] "12,12,12,13,13"    "13"                "11,11,11,11,11,11"

2.stringr.

stringr::str_remove_all(data$col1, "[^[:digit:],]")
#[1] "12,12,12,13,13"    "13"                "11,11,11,11,11,11"

数据.

col1 <- c('Name = "12_Represse", Name="12_Represse", Name="12_Represse", Name="13_Heterochrom/l", Name="13_Heterochrom/lo"',
          'Name="13_Heterochrom/lo"',
          'Name="11_Weak_Tx", Name="11_Weak_Tx", Name="11_Weak_Tx", Name="11_Weak_Tx", Name="11_Weak_Tx", Name="11_Weak_Tx"')
data <- data.frame(col1)