我使用中的R包的头部(d)和尾部(d)的方法utils的很多 - 频繁一前一后。 所以我写了两个功能一个简单的包装:
ht <- function(d, m=5, n=m){
# print the head and tail together
cat(" head --> ", head(d,m), "\n", "--------", "\n", "tail --> ", tail(d,n), "\n")
}
我得到一些意想不到的结果...有人可以帮我明白为什么? (这样我就可以修复它...或者至少了解您的解决方案!)。
一些背景...
数字是罚款:
x <- 1:100
ht(x)
由于是复杂的:
ni <- as.complex(1:100)
ht(ni)
和特点:
ll <- letters[1:26]
ht(ll)
基质失去它的结构,返回[1,1]到[5,5] + [16.1]至[20.5]但是作为两个向量 - 比较:
m <- matrix(1:10, 20)
ht(m)
至:
head(m, 5)
tail(m,5)
我想保持矩阵结构,为utils的方法做 - 这可能吗?
最后(当然,可能会有更多的错误,这只是在那里我到)data.frames是一个烂摊子:
df <- data.frame(num=x[1:26], char=ll)
ht(df)
这会产生以下错误:
head --> Error in cat(list(...), file, sep, fill, labels, append) :
argument 2 (type 'list') cannot be handled by 'cat'
到此为止:
作为位完成后的utils的方法保持矩阵整齐,我试图修复下列编辑的问题:
function(d, m=5, n=m){
# print the head and tail together
rb <- rbind(head(d, m), tail(d,n))
if (class(d) == 'matrix'){
len <- nrow(rb)
cat(" head --> ", rb[(1:m),], "\n", "--------", "\n", "tail --> ", rb[((len-n):len),], "\n")
}
else cat(" head --> ", rb[1,], "\n", "--------", "\n", "tail --> ", rb[2,], "\n")
}
这似乎并没有做过什么矩阵...并用相同的错误仍然打破了,当我
ht(df)
我从这些错误猜测,有一些问题与猫()在这里,但我无法弄清楚它是什么或如何解决它。
任何人都可以请帮助?