Я новичок в R и борюсь с построением набора данных из коллекции музея.Создание кадра данных путем анализа символьных векторов в R
После выскабливания их веб-сайта, у меня есть список векторов символов (скажем, название «характеристика»), в котором каждый элемент выглядит следующим образом:
[[4729]]
[1] " Date://2002 Medium://Pencil on paper Dimensions://22 1/2 x 30 1/8\" (57.2 x 76.5 cm) Credit Line://The Judith Rothschild Foundation Contemporary Drawings Collection Gift MoMA Number://1563.2005 Copyright://© 2015 Steve DiBenedetto"
из этих векторов, я хочу сделать dataframe который выглядит следующим образом:
year medium dimensions credit line number
1 2002 Pencil on paper etc...
Однако, я не могу показаться, чтобы суметь вычитать необходимые данные из векторов символов, как я борюсь с регулярными выражениями, чтобы сделать это. Идея состояла бы в том, чтобы получить то, что происходит после «Date: //» и до «Medium: //». Чтобы усложнить ситуацию, не все элементы в списке имеют одни и те же характеристики в одном порядке (например, некоторые элементы имеют только «дату» и «средний», в то время как другие включают «издание: //», «приобретенное через: //», , и т.д).
Список лет было довольно легко собрать, просто сохраняя первые 4 цифры в каждом элементе списка:
year <- list()
for(p in 1:length(characteristics)) {
string <- as.character(characteristics[p])
year <- c(year, str_extract(string, "\\d\\d\\d\\d"))
}
Это, вероятно, даже не самый быстрый способ сделать это, но это делает работу Что ж. Однако я полностью застрял на извлечении других переменных из списка.
Любой шанс предварительной обработки с помощью 'awk' или что-то разрешено? – ShellFish
Вы можете выделить строку, а затем использовать 'gsub', чтобы удалить первую совпадающую часть. Соответствуйте этому регулярному выражению на каждом шаге:' [a-zA-Z] *: \/\/\ ([^ \ /] * \) [A-Za-Z] * \/\/'. Помните, что это регулярное выражение находится в синтаксисе sed. Существует групповой захват, содержащий нужную вам информацию, доступ к ней с помощью '\ 1' или' \\ 1', я верю в 'R'. – ShellFish
Знаете ли вы доступные варианты для диапазона характеристик? – A5C1D2H2I1M1N2O1R2T1