wat*_*wer 1 sorting r stata dplyr
我的数据如下所示:
(sassign是保存数据的data.frame)
head(sassign %>% select(child,youth,cook,do_it))
child youth cook do_it
1 3 2 2 0
2 0 1 0 1
3 0 0 2 0
4 0 0 0 0
5 0 0 1 0
6 0 1 0 0
Run Code Online (Sandbox Code Playgroud)
我的目标是找到购买儿童书籍、青少年书籍、烹饪书籍和动手书籍的总人数。
所以,这就是我所做的:
sassign %>% summarise( sumchild=sum(child),sumyouth=sum(youth),sumcook=sum(cook),sumdo_it=sum(do_it))
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
sumchild sumyouth sumcook sumdo_it
1 42723 19549 46830 23153
Run Code Online (Sandbox Code Playgroud)
问题 1:: 这解决了我的目的,但是我是否可以获得按列排序的输出?这是我从 Stata 得到的:
--------------------------------------------------------------
| Total Std. Err. [95% Conf. Interval]
-------------+------------------------------------------------
cook | 46830 265.0706 46310.46 47349.54
child | 42723 250.4739 42232.07 43213.93
do_it | 23153 171.2552 22817.34 23488.66
youth | 19549 152.7226 19249.66 19848.34
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,STATA 输出从上到下很好地排序。
问题 2:: 我是否还可以像 STATA 显示的那样包含 SD 和 CI?
问题 3::我是否可以在 SD 或 CI 上排序而不是在 R 中排序?我查看了描述函数,但不确定,所以我想在这里问他们。
我正在从 Stata 过渡到 R,因此我将非常感谢我能得到的任何帮助。我还浏览了 SO 上的其他帖子,但大多数都涉及使用 group_by 时的排序。
谢谢
您可以使用lapply循环数据,计算统计数据,将它们放入数据框中,然后重新绑定它们,排序部分可以使用以下函数arrange完成dplyr:
library(dplyr)
do.call(rbind, lapply(df, function(col) {
t.result = t.test(col);
data.frame(SUM = sum(col), SD = sd(col),
CIL = t.result$conf.int[1], CIH = t.result$conf.int[2]) })) %>%
add_rownames(var = "CAT") %>% arrange(desc(SUM))
# Source: local data frame [4 x 5]
# CAT SUM SD CIL CIH
# <chr> <int> <dbl> <dbl> <dbl>
# 1 cook 5 0.9831921 -0.1984635 1.865130
# 2 youth 4 0.8164966 -0.1901939 1.523527
# 3 child 3 1.2247449 -0.7852909 1.785291
# 4 doit 1 0.4082483 -0.2617636 0.595097
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11892 次 |
| 最近记录: |