我在R数据框中有一列值,其中包含格式为Faculty-Program-Campus-YearLevel的资格证书代码。下面的示例:
Qualification_Code200-N137-P-2200-N136-P-3200-N136-P-2200-N135-V-1300-G112-M-2
我想要使用R将Qualification_Code分成单独的Faculty / Program / Campus / Level列,即理想情况下,我想要以下结果:
教师课程校园年级200 N137 P 2200 N136 P 3200 N136 P 2200 N135 V 1300 G112 M 2
是否有一些内置功能或允许该功能的软件包?我曾尝试使用RSQLite进行此操作,但我的SQL技能却相当落后(我是一名数据科学新人,几乎没有任何编码经验)。感谢您的帮助。
使用strsplit
。
res <- setNames(do.call(rbind.data.frame,
strsplit(dat$Qualification_Code, "-")),
c("Faculty", "Program", "Campus", "YearLevel"))
res
# Faculty Program Campus YearLevel
# 1 200 N137 P 2
# 2 200 N136 P 3
# 3 200 N136 P 2
# 4 200 N135 V 1
# 5 300 G112 M 2
数据
dat <- structure(list(Qualification_Code = c("200-N137-P-2", "200-N136-P-3",
"200-N136-P-2", "200-N135-V-1", "300-G112-M-2")), row.names = c(NA,
-5L), class = "data.frame")
使用read.table
read.table(text = df$Qualification_Code, sep = "-",
col.names = c("Faculty", "Program", "Campus", "YearLevel"))
# Faculty Program Campus YearLevel
# 1 200 N137 P 2
# 2 200 N136 P 3
# 3 200 N136 P 2
# 4 200 N135 V 1
# 5 300 G112 M 2