首页 文章

R设定值依赖于另一个值

提问于
浏览
0

对于我的数据帧的每一行,我想根据从该数据帧的列中获取的数字计算一个值 . 如果计算的值大于2,我想将另一列值设置为0,否则设置为1 .

x=(df$firstnumber+df$secondnumer)/2
if(x>2){
df$binaryValue=0}
else{ df$binaryValue=1}

这会引发错误

条件的长度> 1,只使用第一个元素

因为x是一个向量

我怎么解决这个问题?一种方法是将其作为一个函数编写并将其应用于数据框 - 还有其他选择吗?

另外,我怎么能写这个用于appl()?

提前致谢

2 回答

  • 4
    transform(df, BinaryValue = as.numeric(firstnumber + secondnumber > 4))
    

    首先没有必要除以2 . 您可以检查总和是否大于4 . 函数 as.numeric 用于将布尔值转换为数字(0和1)值 .

  • 3

    你可以简单地做......

    df$BinaryValue <- ifelse( x > 2 , 0 , 1 )
    

    所以你得到......

    df <- data.frame( x = 1:5 , y = -2:2 )
    x <- df$x + df$y
    df$BinaryValue <- ifelse( x > 2 , 0 , 1 )
    
    df
    #     x  y BinaryValue
    #   1 1 -2           1
    #   2 2 -1           1
    #   3 3  0           0
    #   4 4  1           0
    #   5 5  2           0
    

相关问题