将最小值设置为 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 会回收参数,因此您无需担心要替换的向量的大小。
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
我想将 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 会回收参数,因此您无需担心要替换的向量的大小。
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