2015-10-09 4 views
1

Допустим, что у нас есть список с номерами и применить функцию, , например среднюю функцию к каждому элементу списка:аргументы Попутный функционировать внутри sapply

l <- list(a = 1:10, b = 11:20) 
l.mean <- sapply(l, mean) 
l.mean # it works 

Но что, если список состоит из строк, и мы хотим, чтобы вставить их:

ll <- list(a=c("1", "2"), b=c("3", "4")) 
ll.paste <- sapply(ll, as.call(list(paste, ll, sep = ", "))) 
ll.paste # it does not work 

выходной сигнал Я ожидаю, что должно быть что-то вроде этого:

# 1, 2 
# 3, 4 

ответ

1

Нам нужен аргумент collapsepaste.

unname(sapply(ll, paste, collapse=', ')) 

Функция обертка для paste(., collapse=', ') является toString

unname(sapply(ll, toString)) 
+1

Вы совершенно правы. И я не знал, что ты не знаешь. Tnx много – Apostolos