我有一个data.frame
,希望得到每一列的意思。我申请了sapply
并获得了以下内容
Hour Minute TotalDay TotalHour
0.00 17.33 105.93 2542.41
我想删除sapply
输出的标题部分,使其看起来像:
0.00 17.33 105.93 2542.41
对我如何做到这一点的任何帮助都非常感谢。
由于
答案 0 :(得分:4)
colMeans
有更好的选择,但在很多情况下我个人都喜欢lapply
和unlist
,并且顽固地难以杀死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)。