我有一个包含多个列的数据框 . 一列的条目值可以是负数或正数 . 我想对此列中的每个条目应用一个函数,以便在它为负数时将其设置为0,否则该值应保持不变 .
我的想法如下:
df <- data.frame("ID" = c(1,2,3,4,5),"value" = c(1,-1,0,2,-2))
f <- function(value) {
if (value > 0 ){
return(value)
}
else return(0)
}
然后在数据帧的“value”列上使用类似apply函数的内容 .
例如:
df$newValue <- apply(df, f(df$value))
我不确定它是正确的方法,因为我没有让它工作 . 可能对“应用”也有错误的理解
2 回答
您可以直接使用sapply内部的函数作为lamda而不是单独定义它:
如果你只想要
value
:对于
newvalue
:或者对于所有列,您只需要:
因为
df<0
会在满足该条件的情况下为您提供TRUE
,在所有列中: