Я использую lapply
, чтобы попытаться разделить строку символов во фрейме данных.Все строки похожи на "02D_48M_RHD"
.Я пытаюсь взять цифры перед «D» и перед «M».
Мое использование lapply
, кажется, работает:
a <- lapply(res$description, strsplit, split="[DM]_", fixed=FALSE)
> a[[1]]
[[1]]
[1] "02" "48" "RHD"
Однако я не могу,для моей жизни выясните, как получить доступ только к первому элементу вектора в [ 1 ].Документация предполагает, что a[[1]][1]
должен дать мне первый элемент, но вот что происходит:
> a[[1]][1]
[[1]]
[1] "02" "48" "RHD"
Я не понимаю, почему это не работает.R говорит мне, что это вектор, но он также говорит, что его длина равна единице.
> is.vector(a[[1]])
[1] TRUE
> length(a[[1]])
[1] 1
Я не уверен, что я неправильно понимаю.lapply
дает результат не так, как я ожидаю?Я ожидаю список векторов длины три, и вот как это выглядит.Или это то, что я получаю, но пытаюсь получить к ним неправильный доступ?
В конце концов, я бы хотел добавить три столбца в мой фрейм данных, по одному для каждой из этих частей информации, таквсе, что могло бы помочь мне двигаться в этом направлении, будет с благодарностью.