Я знаю, что раньше сталкивался с этой проблемой, но сейчас у меня небольшой психический блок. и так как я не могу найти его на SO, я опубликую его здесь, чтобы найти его в следующий раз.
У меня есть фрейм данных, который содержит поле, представляющее метку идентификатора. Этот ярлык состоит из двух частей: альфа-префикса и числового суффикса. Я хочу разделить его и создать два новых поля с этими значениями в.
structure(list(lab = c("N00", "N01", "N02", "B00", "B01", "B02",
"Z21", "BA01", "NA03")), .Names = "lab", row.names = c(NA, -9L
), class = "data.frame")
df$pre<-strsplit(df$lab, "[0-9]+")
df$suf<-strsplit(df$lab, "[A-Z]+")
Что дает
lab pre suf
1 N00 N , 00
2 N01 N , 01
3 N02 N , 02
4 B00 B , 00
5 B01 B , 01
6 B02 B , 02
7 Z21 Z , 21
8 BA01 BA , 01
9 NA03 NA , 03
Итак, первый strsplit работает нормально, но второй дает список, каждый из которых имеет два элемента, пустую строку и нужный результат, и помещает их обоих в столбец dataframe.
Как выбрать второй подэлемент из каждого элемента списка? (или есть ли лучший способ сделать это)