Теперь я нашел причину не определять head.character: он меняет способ работы головы. Например:
head.character <- function(s,n) if(n<0) substr(s,1,nchar(s)+n) else substr(s,1,n)
test <- c("abc", "bcd", "cde")
head("abc", 2) # works fine
head(test,2)
Без определения head последняя строка будет возвращать c ("abc", "bcd"). Теперь, с определенным head.character, эта функция применяется к каждому элементу списка и возвращает c ("ab", "bc", "cd").
Но теперь у меня есть strhead и функция strtail ..: -)