2015-05-27 2 views
0

У меня есть следующий тип данных:сохранить имена в списке с sapply()

token <- list(
cameron = rep("people", 12)) 

я применяю функцию вроде следующих:

token <- sapply(token, function(x){ 
x <- str_trim(x, side = "both") 
}) 

Проблема заключается в том sapply() путает название структуры. Запуск names(token) возвращает NULL. Запуск str(token) показывает проблему: первый атрибут - NULL, а второй - тот, который я хочу назвать его именем. Я думал, что USE.NAMES() доставит мне то, что я хочу, но я не могу заставить его работать. Я полагаю, что это должна быть общая проблема, но я не мог найти решение здесь или где-то еще. Кто-нибудь знает, что делать?

ответ

2

Вам может понадобиться simplify=FALSE в sapply

sapply(token, function(x) str_trim(x, side='both'), simplify=FALSE) 

Или лучше было бы использовать lapply

lapply(token, function(x) str_trim(x, side='both')) 
+1

Спасибо. 'simplify = FALSE' сделал трюк. Для этого я рассмотрю 'lapply()'. – JoeF

+0

@JoeF 'sapply' обладает таким свойством, и если мы не заметили, что мы используем' simplify' в функции или так, может потребоваться некоторое время для отладки проблемы. Поэтому лучше использовать 'lapply'. – akrun

Смежные вопросы