将最小值设置为 R 中的特定列

Set minimum value to a specific column in R

我想将 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)

一些想法?

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

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

说明

用这个你用你的阈值 (0.0001) 替换所有低于你的阈值 (这里是 0.0001) 的值

怎么样?

dfout$value[dfout$value <  0.0001]

select 向量中的所有位置 dfout$value 是否满足您的标准 dfout$value < 0.0001

您将所有这些位置替换为 0.0001,并且由于 R 会回收参数,因此您无需担心要替换的向量的大小。

pminpmax函数可分别用于设置上限和下限。参数被回收,因此单个值将成为绑定。需要使用 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