【问题标题】:Find a summary statistics for multiple values查找多个值的汇总统计信息
【发布时间】:2021-01-11 23:18:33
【问题描述】:

我已经编写了以下r 代码。

t = seq(0.1, 1, by = 0.1)
for(i in c(t)){
  print(c( i, round(2^i, 3) , round(exp(-3*i),3)))
 
}

输出是

[1] 0.100 1.072 1.000
[1] 0.200 1.149 1.000
[1] 0.300 1.231 0.000
[1] 0.40 1.32 0.00
[1] 0.500 1.414 0.000
[1] 0.600 1.516 0.000
[1] 0.700 1.625 0.000
[1] 0.800 1.741 0.000
[1] 0.900 1.866 0.000
[1] 1 2 0

我想找到每一列的minimummaximum 值。我的问题是如何将这些输出存储在data frame 中。我的意图是找到对应于2^iexp(-3*i)iminimummaximum 值。 例如,上面的输出,min(2^i) = 1.072max(2^i) = 1.866。同样,我也想为第二列做这件事。我的实际代码会生成 100000 值。 感谢您的帮助。

【问题讨论】:

    标签: r dataframe for-loop


    【解决方案1】:

    所以您只想将tround(2^t, 3)round(exp(-3 * t)) 存储在一个数据框中?

    但我认为您在第二个 round 中错过了 digits = 参数(所有值都是 0 或 1),所以我假设您打算像第一个一样使用 3。

    dat <- data.frame(t = seq(0.01, 5, by = 0.001))
    dat$a <- round(2^dat$t, 3)
    dat$b <- round(exp(-3 * dat$t), 3)
    

    然后你可以使用min(dat$a)max(dat$a),甚至summary(dat)

    更简洁的方式是使用dplyr::mutate 创建所有列。

    library(dplyr)
    
    dat <- data.frame(t = seq(0.01, 5, by = 0.001)) %>% 
      mutate(a = round(2^t, 3),
             b = round(exp(-3 * t), 3))
    

    【讨论】:

    • @jared_mamrot 是的,您需要先创建至少一列。编辑了我的答案。这可以通过使用dplyr::mutate 一步创建列来避免。
    【解决方案2】:

    我假设你想从一个数据框开始,它可以由

    x <- seq(0.1, 1, by = 0.1)
    df <- data.frame(cbind(x, round(2**x, 3), round(exp(-3 * x), 3)))
    

    那么,如果你只想为每一列设置minmax,你可以试试

    > Map(range, df)
    $x
    [1] 0.1 1.0
    
    $V2
    [1] 1.072 2.000
    
    $V3
    [1] 0.050 0.741
    

    否则,summary可以提供更全面的结果,例如,

    > summary(df)
           x               V2              V3
     Min.   :0.100   Min.   :1.072   Min.   :0.05000
     1st Qu.:0.325   1st Qu.:1.253   1st Qu.:0.09875
     Median :0.550   Median :1.465   Median :0.19400
     Mean   :0.550   Mean   :1.493   Mean   :0.27160
     3rd Qu.:0.775   3rd Qu.:1.712   3rd Qu.:0.38050
     Max.   :1.000   Max.   :2.000   Max.   :0.74100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 2016-01-28
      相关资源
      最近更新 更多