Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将频率和SD添加到R中的摘要中_R_Frequency_Summary - Fatal编程技术网

将频率和SD添加到R中的摘要中

将频率和SD添加到R中的摘要中,r,frequency,summary,R,Frequency,Summary,我有这样一个data.frame(示例): 我想询问这些值的摘要(最小值、最大值、1stQ、3rdQ..)。 当我跑步时: aggregate(protein~product,summary,data=DATA4, na.rm = TRUE) 我有这个 product protein.Min. protein.1st Qu. protein.Median protein.Mean protein.3rd Qu. protein.Max. aaa 6.400

我有这样一个data.frame(示例):

我想询问这些值的摘要(最小值、最大值、1stQ、3rdQ..)。 当我跑步时:

aggregate(protein~product,summary,data=DATA4, na.rm = TRUE)
我有这个

    product protein.Min. protein.1st Qu. protein.Median protein.Mean protein.3rd Qu. protein.Max.
      aaa        6.400          14.700         15.600       15.540          16.600       22.500
      bbb        6.300           9.400         10.100       10.130          10.800       15.100
      ccc       23.000          24.080         24.250       24.180          24.420       25.000
但是我也希望有频率和SD。我怎么能这样问? 我试过用ddply,但我不能使它工作。(我在一些变量中有NA(蛋白质、脂肪、淀粉…)

除此之外,因为这里我只要求对蛋白质水平进行总结,我怎么能一次对所有变量(蛋白质、脂肪、淀粉等)进行总结


非常感谢!

如果我想指定如何获得摘要的输出,我通常会使用
dplyr
找到更详细的解决方案,如下所示:

library(dplyr)

df <- data.frame(product = rep(letters[1:3], each=3,3),
                 protein = sample(10:40, 27, replace=T))

df %>% group_by(product) %>% 
  summarise(min = min(protein)
            ,max = max(protein)
            ,mean = mean(protein)
            ,sd = sd(protein)
            ,n = n()
            ,q25 = quantile(protein, .25)
            ,q75 = quantile(protein, .75))  
库(dplyr)
df%按产品分组百分比>
总结(分钟=分钟(蛋白质)
,max=max(蛋白质)
,平均值=平均值(蛋白质)
,sd=sd(蛋白质)
,n=n()
,q25=分位数(蛋白质,.25)
,q75=分位数(蛋白质,.75))
结果:

# A tibble: 3 × 8
  product   min   max     mean       sd     n   q25   q75
   <fctr> <int> <int>    <dbl>    <dbl> <int> <dbl> <dbl>
1       a    16    39 24.66667 8.717798     9    17    30
2       b    24    40 31.55556 5.387743     9    26    35
3       c    13    38 26.66667 8.108637     9    22    31
#一个tible:3×8
产品最小最大平均标准偏差n q25 q75
1 a 16 39 24.66667 8.717798 9 17 30
2 b 24 40 31.55556 5.387743 9 26 35
3 c 13 38 26.66667 8.108637 9 22 31

类似于聚合(蛋白质~产品,乐趣=功能(i)c(摘要(i,na.rm=TRUE),l1=length(i),sd1=sd(i,na.rm=TRUE)),data=DATA4)?@Sotos谢谢!它起作用了,而且我无法理解代码中的任何内容..x),但你知道为什么现在的答案是这种格式吗?aaa 6.400000e+00 1.470000e+01 1.560000e+01 1.554000e+01 1.660000e+01(指数?)您可以通过使用
选项(scipen=999)
@Sotos来避免科学记数法,但我应该把它放在哪里呢?代码的哪一部分?对不起/仅
选项(scipen=999);聚合(……))
您可以将其应用于
总结所有(funs(min,max,median,sd,n=n(),q25=分位数(,.25),q75=分位数(,.75))
是否要将其应用于原始数据中的所有类别(蛋白质,脂肪和淀粉)frame@Wietze314谢谢你的帮助!在您的情况下,我可以看到它正在工作,但当我运行该代码时,我得到了以下错误:函数列表中的错误[[i]](值):无法找到函数“groupby”,您要调用
库(dplyr)
这些函数都来自该函数package@Wietze314我知道,我已经做到了。。。当我再次尝试时…同样的错误。你的包是最新的吗?也许你需要更新一下
# A tibble: 3 × 8
  product   min   max     mean       sd     n   q25   q75
   <fctr> <int> <int>    <dbl>    <dbl> <int> <dbl> <dbl>
1       a    16    39 24.66667 8.717798     9    17    30
2       b    24    40 31.55556 5.387743     9    26    35
3       c    13    38 26.66667 8.108637     9    22    31