[英]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.