如何从sapply中删除输出的标题部分

时间:2014-03-10 03:33:33

标签: r sapply

我有一个data.frame,希望得到每一列的意思。我申请了sapply并获得了以下内容

Hour       Minute     TotalDay    TotalHour
0.00        17.33       105.93      2542.41 

我想删除sapply输出的标题部分,使其看起来像:

0.00        17.33       105.93      2542.41

对我如何做到这一点的任何帮助都非常感谢。

由于

3 个答案:

答案 0 :(得分:4)

colMeans有更好的选择,但在很多情况下我个人都喜欢lapplyunlist,并且顽固地难以杀死use.names = FALSE的{​​{1}}参数如下所示(使用没有提供的mtcars数据集):

unlist

答案 1 :(得分:2)

以下是另一种选择:只需将NULL值设为names

> output <- sapply(iris[,-5], mean)
> names(output) <- NULL
> output
[1] 5.843333 3.057333 3.758000 1.199333

答案 2 :(得分:1)

(粘贴评论的代码效果不如我所喜欢的那样)。同样,这不是colMeans()的目的吗?如果原始q中有更多的代码/数据,则会更容易重现。

dat <- data.frame(x = sample(1000,10), y = sample(1000,10), z = sample(1000,10)) 

print(dat)
##      x   y   z
## 1  565 374  88
## 2  347 688 896
## 3  478 542 508
## 4  103 350 122
## 5  115  61 175
## 6  573 164 543
## 7  371 304 486
## 8  437 659 140
## 9  532 510  61
## 10  47 227 738

print(as.numeric(colMeans(dat)))
## [1] 356.8 387.9 375.7
正如Ananda Mahto在评论中指出的那样(但是我认为在不熟悉colMeans()的人在R控制台中执行了?colMeans后我会认为这是显而易见的(我们不只是剪切/粘贴代码来自Stack *,对吗?:-) colMeans()不剥离标签,as.numeric()是。我指出colMeans()主要建议避免*apply()调用列意味着哪里有内置替代方案。是的,有时为列意味着*apply()有意义,但绝对不是这种情况(IMO)。