Я мог бы решить это с помощью циклов, но я стараюсь думать в векторах, поэтому мой код будет больше R-esque.Как избежать цикла в R: выбор элементов из списка
У меня есть список имен. Формат имеет имя firstname_lastname. Я хочу вывести из этого списка отдельный список только с именами. Я не могу понять, как это сделать. Вот некоторые примеры данных:
t <- c("bob_smith","mary_jane","jose_chung","michael_marx","charlie_ivan")
tsplit <- strsplit(t,"_")
, который выглядит следующим образом:
> tsplit
[[1]]
[1] "bob" "smith"
[[2]]
[1] "mary" "jane"
[[3]]
[1] "jose" "chung"
[[4]]
[1] "michael" "marx"
[[5]]
[1] "charlie" "ivan"
я мог получить то, что я хочу с помощью петель, как это:
for (i in 1:length(tsplit)){
if (i==1) {t_out <- tsplit[[i]][1]} else{t_out <- append(t_out, tsplit[[i]][1])}
}
, который дал бы мне это:
t_out
[1] "bob" "mary" "jose" "michael" "charlie"
Так как я могу делать это без циклов?
BTW это может быть полезно, если вы могли бы подробно, как это отличается от ваших предыдущих вопросов по той же теме: http://stackoverflow.com/questions/439526/thinking-in -vectors-with-r http://stackoverflow.com/questions/1246244/r-using-the-apply-function-on-a-data-frame-help-me-get-my-vector-victor http://stackoverflow.com/questions/445059/vectorize-my-thinking-vector-operations-in-r –
Вы имеете в виду мою полную неспособность действительно научиться выполнять функции применения в R? Да, такая же проблема, разные нюансы. Спасибо за напоминание. –