【问题标题】:Set minimum value to a specific column in R将最小值设置为 R 中的特定列
【发布时间】:2016-08-01 08:06:27
【问题描述】:

我想将0.0001 设置为 R 中特定列的最小值。我的输入:

 df <- 'Tagx  value
 1 0 
 2 1
 2  1 
 3  0 '
df <- read.table(text=df, header=T)

我的预期输出:

dfout <- 'Tagx  value
 1 0.0001 
 2 1
 2  1 
 3  0.0001 '
dfout <- read.table(text=dfout, header=T)

一些想法?

【问题讨论】:

    标签: r rounding minimum


    【解决方案1】:

    您可以轻松地将其矢量化:

    dfout$value[dfout$value <  0.0001] <-  0.0001
    

    说明

    这样,您将所有低于阈值(此处为 0.0001)的值替换为阈值 (0.0001)

    怎么样?

    dfout$value[dfout$value <  0.0001]
    

    将选择您的向量dfout$value 中满足您的标准dfout$value &lt; 0.0001 的所有位置。

    您将所有这些位置替换为 0.0001,并且当 R 循环使用参数时,您无需担心要替换的向量的大小。

    【讨论】:

      【解决方案2】:

      pmin 和pmax 函数可分别用于设置上限和下限。参数被回收,因此单个值将成为界限。需要使用pmax 来设置最小值似乎有点奇怪:

      df$value <- pmax(0.0001, df$value)
      df
      #
        Tagx value
      1    1 1e-04
      2    2 1e+00
      3    2 1e+00
      4    3 1e-04
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多