Я знаю, что раньше сталкивался с этой проблемой, но на данный момент у меня немного ментальный блок. и поскольку я не могу найти его на SO, я отправлю его здесь, чтобы найти его в следующий раз.Как получить второй подэлемент каждого элемента в списке
У меня есть dataframe, который содержит поле, обозначающее метку ID. Эта метка имеет две части: альфа-префикс и числовой суффикс. Я хочу, чтобы разделить его на части и создать два новых поля с этими значениями в.
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.
Как выбрать второй подэлемент из каждого элемента списка? (Или, есть лучший способ сделать это)
, что это ' "[["' делает в этом примере? – user5359531
выбирает отдельные элементы списка, смотри? "[[" – rcs