簡體   English   中英

將一列分為數字和非數字部分

[英]split a column into numeric and non-numeric components

我需要將一列拆分為2,結果列包含原始列的數字或字符部分。

df <- data.frame(myCol = c("24 hours", "36days", "1month", "2 months +"))

 myCol
 24 hours
 36days
 1month
 2 months +

結果應該是:

alpha   numeric
hours      24
days       36
month      1
months +   2

請注意原始數據幀的格式不一致(有時帶有空格,有時沒有)。

整潔或基本的解決方案都可以

謝謝

一種解決方案可能是:

library(tidyverse)
df %>%
    separate(myCol,
           into = c("numeric", "alpha"),
           sep = "(?=[a-z +]+)(?<=[0-9])"
)

哪個返回:

  numeric  alpha
1    24     hours
2    36      days
3     1     month
4     2  months +

您可以這樣做:

library(stringr)
df$numeric <- str_extract(df$myCol, "[0-9]+")
df$alpha <- str_remove(df$myCol, df$numeric)

或帶有基本功能

df$numeric <- regmatches(df$myCol, regexpr("[0-9]+", df$myCol))
df$alpha <- gsub("[0-9]+", "", df$myCol)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM