这是你需要的吗?
library(dplyr)
library(stringr)
test %>%
rownames_to_column() %>%
mutate(rowname = str_extract_all(rowname, "\\d+"))
rowname v1 v2
1 1, 3, 67 1 3
2 4, 5, 77 3 4
3 12, 6 5 9
这里我们使用
str_extract
仅匹配和提取
d
列中的数字
rowname
; 逗号分隔符将自动添加到提取的列表中
测试数据:
test <- data.frame(v1 = c(1,3,5),
v2 = c(3,4,9))
row.names(test) <- c("col1 + col3 + col67", "col4 + col5 + col77", "col12 + col6")
编辑
:
更长时间投射数据帧
行名称
,从而能够将其转换为数字,使用
unnest_longer
:
test %>%
rownames_to_column() %>%
mutate(rowname = str_extract_all(rowname, "\\d+")) %>%
unnest_longer(rowname) %>%
mutate(rowname = as.numeric(rowname))
# A tibble: 8 Ã 3
rowname v1 v2
<dbl> <dbl> <dbl>
1 1 1 3
2 3 1 3
3 67 1 3
4 4 3 4
5 5 3 4
6 77 3 4
7 12 5 9
8 6 5 9