我有一個如下所示的資料框列:
Chr1 Chr14 Chr19 Chr2 Chr8 Chr7
我想創建一個如下所示的新列:1 14 19 2 8 7
我試過這段代碼,但它對我不起作用: New$CHR_1 <- substr(OLD$CHR, 4, 4) %>% as.integer
uj5u.com熱心網友回復:
請在下面找到包含軟體包data.table和stringr. 您只需要使用以下代碼行:
REPREX
- 您的資料
library(data.table)
library(stringr)
# Create your data.frame
OLD <- data.frame(CHR = c("Chr1", "Chr14", "Chr19", "Chr2", "Chr8", "Chr7"))
- 代碼
# Convert into data.table
setDT(OLD)
# Add a column "Chr_ID" containing the numbers
OLD[ , Chr_ID := lapply(.SD, str_extract,"(?<=^Chr)\\d "), .SDcols = "CHR"]
- 輸出
OLD
#> CHR Chr_ID
#> 1: Chr1 1
#> 2: Chr14 14
#> 3: Chr19 19
#> 4: Chr2 2
#> 5: Chr8 8
#> 6: Chr7 7
由reprex 包(v2.0.1)于 2021 年 10 月 13 日創建
uj5u.com熱心網友回復:
您可以使用readr::parse_number從列中提取數字。
OLD <- data.frame(CHR = c("Chr1", "Chr14", "Chr19", "Chr2", "Chr8", "Chr7"))
OLD$num <- readr::parse_number(OLD$CHR)
OLD
# CHR num
#1 Chr1 1
#2 Chr14 14
#3 Chr19 19
#4 Chr2 2
#5 Chr8 8
#6 Chr7 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312518.html
