首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R分布五维结果

R分布五维结果
EN

Stack Overflow用户
提问于 2020-10-23 06:58:51
回答 2查看 233关注 0票数 1

我拆分了一个数据框架,并使用ddply函数进行了重组。我应用了fivenum函数,这样我就可以看到每个变量的最小值,第一,中值,第三,最大值。

代码语言:javascript
复制
d <- ddply(sara_data_gathered, "Variable", summarise, fivenum = fivenum(Percent))

我现在想知道如何扩展这个数据框架,以便每个值(最小,第一,中位数.)表示为它自己的变量。所以我在找一张六列的桌子。我认为tidyr可能是一个很好的地方看看,但我不认为我有一个标有标签的列。所以首先我要给一个新专栏贴上标签..。

我尝试使用mutate和rep命令,但是从输出中可以看到它不起作用:/

代码语言:javascript
复制
d <- d %>% 
  mutate(Position = rep(c("Minimum", "First Quartile", "Median", "Third Quartile", "Maximum"), each = 5))
d

可变五位芳烃1.0最小值

芳烃19.0最小值

芳烃28.0最小值

芳烃41.0最低

芳烃67.0最小值

沥青素0.0第一四分位数

沥青质1.0第一四分位数

沥青质8.0首四分位数

沥青质30.5第一四分位

沥青质93.0首四分位数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-23 07:05:54

plyr已经退役,您可以使用dplyr,如果您在1.0.0中,可以在summarise中返回多行。然后,我们可以使用pivot_wider以宽格式获取数据。

代码语言:javascript
复制
library(dplyr)

mtcars %>%
  group_by(cyl) %>%
  summarise(fivenum = fivenum(mpg), 
            Position = c("Minimum", "First Quartile", "Median", "Third Quartile", "Maximum")) %>%
  tidyr::pivot_wider(names_from = Position, values_from = fivenum)

#    cyl Minimum `First Quartile` Median `Third Quartile` Maximum
#  <dbl>   <dbl>            <dbl>  <dbl>            <dbl>   <dbl>
#1     4    21.4             22.8   26               30.4    33.9
#2     6    17.8             18.6   19.7             21      21.4
#3     8    10.4             14.3   15.2             16.4    19.2
票数 2
EN

Stack Overflow用户

发布于 2020-10-23 07:16:18

另一种选择是简单地使用基R中的tapply函数:

代码语言:javascript
复制
do.call(rbind, tapply(mtcars$mpg, mtcars$cyl, summary))

#    Min. 1st Qu. Median     Mean 3rd Qu. Max.
# 4 21.4   22.80   26.0 26.66364   30.40 33.9
# 6 17.8   18.65   19.7 19.74286   21.00 21.4
# 8 10.4   14.40   15.2 15.10000   16.25 19.2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64495332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档