R提取并获取字符串的相应数值

R Extract and get the corresponding Numeric values of a string

需要帮助寻找一个函数来提取和获取由“-”分隔的请求字符串的值

数据:

x <- c("AA-AA/BB-11/CC-22/dd-1", "AA-AA/BB-33/CC-331")

期望输出:

BB should get vector of (11, 33)

CC should get vector of (22, 331)

您可以使用 stringr 完成任务:

library(stringr)
x <- c("AA-AA/BB-11/CC-22/dd-1", "AA-AA/BB-33/CC-331")
BB <- as.numeric(str_match(x, "/BB-([0-9]+)")[, 2])
CC <- as.numeric(str_match(x, "/CC-([0-9]+)")[, 2])

你可以使用 chartr 来改变你的拆分字符,然后将其输入 read.table:

tmp <- read.table(text=chartr("-/", " \n", x), stringsAsFactors=FALSE)

#  V1  V2
#1 AA  AA
#2 BB  11
#3 CC  22
#4 dd   1
#5 AA  AA
#6 BB  33
#7 CC 331

如果您确实需要单独的向量:

split(tmp$V2, tmp$V1)

#$AA
#[1] "AA" "AA"
#
#$BB
#[1] "11" "33"
#
#$CC
#[1] "22"  "331"
#
#$dd
#[1] "1"