【发布时间】:2016-03-24 04:47:13
【问题描述】:
我有数据框
df=data.frame(x=rnorm(8),y=runif(8),longstring=c("foo_100_Case1","foo_125_Case1","bar_100_Case1","bar_125_Case1","foo_100_Case2","foo_125_Case2","bar_100_Case2","bar_125_Case2"),stringsAsFactors = F)
我需要用分隔符“_”将最后一列分成三列。我一直在做以下事情:
a=matrix(unlist(strsplit(df$longstring,"_",fixed=T)),8,3,byrow = T)
df$type=a[,1]
df$point=a[,2]
df$case=a[,3]
但我想知道是否有更简单的方法:strsplit和unlist的组合特别尴尬,并且不会使代码变得非常可读。
【问题讨论】:
-
tidyr 包中的函数
separate就是专门为此编写的。