取出strsplit中的元素放入dataFrame

Take the elemnt in strsplit and put to dataFrame

我根据_拆分了一个字符串。

我将输出直接添加到我拥有的数据框中。但是,现在我的第二列中有每个拆分字符串的向量。

示例代码:

n = c(2, 3, 5, 6) 
s = c("DUMMY_PO0111385745_TEST_LLN_DOLHTM", "DUMMY_VO0111385745_ST_LdN_DOLHTM", "DUMMY_PO0143385745_TE_N_CHHTM", "DUMMY_US0121785745_TEST1_MM_EURHTM") 
df = data.frame(n, s) 

# convert all factors to character strings
df <- data.frame(lapply(df, as.character), stringsAsFactors=FALSE) 
df$ID_NUMB <- strsplit(df$s, "_", fixed=TRUE)

任何关于如何从分割向量中取出 "number" 的建议,例如:PO0111385745?

感谢您的回复!

你可以试试

library(stringr)
df$s1 <- str_extract(df$s,'\d+')
df$s1
#[1] "0111385745" "0111385745" "0143385745" "0121785745"

或基础 R 选项

gsub("[^0-9]+", '', df$s)
#[1] "0111385745"  "0111385745"  "0143385745"  "01217857451"

如果你也需要字母

 gsub(".*?([A-Z]+[0-9]+).*", '\1', df$s)
 #[1] "PO0111385745" "VO0111385745" "PO0143385745" "US0121785745"