【发布时间】:2018-04-08 15:43:28
【问题描述】:
我有一列包含大量“Male25”形式的数据,表示性别和年龄。我只想将列分为两列,一列与性别,另一列与年龄。在 R 中做到这一点的最佳方法是什么?
【问题讨论】:
标签: r
我有一列包含大量“Male25”形式的数据,表示性别和年龄。我只想将列分为两列,一列与性别,另一列与年龄。在 R 中做到这一点的最佳方法是什么?
【问题讨论】:
标签: r
我们可以使用separate
library(tidyverse)
as_tibble("Male25" ) %>%
separate(value, into = c("sex", "age"), "(?<=[a-z])(?=[0-9])", convert = TRUE)
# A tibble: 1 x 2
# sex age
#* <chr> <int>
#1 Male 25
【讨论】:
strcapture("(\\w+)(\\d+)","male25",data.frame(name=character(),age=numeric()))
d <- data.frame(a=c("male25","female24","male36","female20"))
cbind(a1=gsub("\\d","",d$a),a2=gsub("\\D","",d$a))
c <- data.frame(a1=gsub("\\d","",d$a),a2=as.numeric(gsub("\\D","",d$a)))
【讨论】: