У меня есть кадр данныхразделить столбец строки в нескольких столбцах
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
особенно неудобно, и это не делает код очень читаемым.
Функция 'separate' в пакете ** ** tidyr был специально написан для этого. – joran