Я хочу изменить порядок слов для каждого элемента в векторе. В частности, я хотел бы создать другой вектор, в котором первое слово теперь является последним словом для ряда элементов, различающихся по длине.
Данные
metadata1 <- c("reference1 an organism",
"reference2 another organism here",
"reference3 yet another organism is here")
Желаемый результат
metadata2 <- c("an organism reference1",
"another organism here reference2",
"yet another organism is here reference3")
Моя попытка
metadata2 <- lapply(strsplit(metadata1," "), function(x) paste(x[c(2,3,4,5,1)]))
Я попытался использовать lapply()
для разделения каждого элемента пробелами с помощью strsplit()
, а затем снова вставить их вместе, используя индекс порядка. Это получает слова в правильном порядке, но возвращает список, в котором слова являются отдельными элементами, и поскольку некоторые элементы длиннее других, я получаю «NA», когда номер индекса больше, чем количество слов в этом элементе. Я также пробовал sapply()
, который возвращает матрицу, и tapply()
, который не работает.
sub("^(\\w+) (.*)$", "\\2 \\1", metadata1)
- person Frank   schedule 02.02.2017