替换数据帧中低于行阈值R的值

替换数据帧中低于行阈值R的值,r,R,我有一个数据帧(强度),我想用0替换行阈值以下的所有值。阈值为相应行最大值的80%。结果应作为新的数据帧进行保护 我试过这个: cutoff <- function(x){ x[x < 0.8* max(x)] <- 0 } filter_int <- t(apply(X= intensities, MARGIN = 1, FUN= cutoff)) cutoff经典问题。R函数返回最后一行返回的值。如果指定了某个值,R将不可见地返回指定的值。在您的例子中,这就是

我有一个数据帧(强度),我想用0替换行阈值以下的所有值。阈值为相应行最大值的80%。结果应作为新的数据帧进行保护

我试过这个:

cutoff <- function(x){
 x[x < 0.8* max(x)] <- 0
} 

filter_int <- t(apply(X= intensities, MARGIN = 1, FUN= cutoff))

cutoff经典问题。R函数返回最后一行返回的值。如果指定了某个值,R将不可见地返回指定的值。在您的例子中,这就是
0

添加显式返回语句以解决此问题:

cutoff <- function(x){
 x[x < 0.8* max(x)] <- 0
 return(x)
} 

谢谢,现在可以用了
df <- as.data.frame(
  replicate(10, sample(1:100,100))
)

df2 <- df
for(i in seq_len(nrow(df))){
  df2[i,] <- cutoff(df[i,])
}