如何替换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)
我有一列数据,我试图在其中删除所有非数字字符 数据如下:
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)