【问题标题】:Replace values in one vector based on values greater than x in separate vector of dataframe根据数据帧的单独向量中大于 x 的值替换一个向量中的值
【发布时间】:2019-10-15 08:04:58
【问题描述】:

我有一个数据框,其中一个向量中高于某个级别的值应在下一个向量中更改。

我尝试了 if 函数,它返回 'NA'。

if (mydata$duration >15) {
mydata$code==3
}

这里是一些标记为“重新编码”的结束函数的代码

duration<-c(1,14,5,17,9,10,14,16,2,8,3,18)
code<-c(1,2,1,2,1,2,1,2,1,2,1,2)
mydata<-data.frame(code,duration)
recode<-c(1,2,1,3,1,2,1,3,1,2,1,3)
mydata<-data.frame(recode,duration)

【问题讨论】:

  • 你看过ifelse函数吗? ifelse(duration &gt; 15, 3, code)
  • 嗨@bouncy 我不认为 ifelse 适用于已经存在的向量,并且 1,2 代码预定义为这些数字。
  • mydata$code &lt;- with(mydata, replace(code, duration &gt; 15, 3))
  • 你试过我发送的代码了吗? ifelse 肯定适用于已经存在的向量
  • 谢谢@bouncyball 道歉,您的代码运行良好

标签: r dataframe if-statement replace


【解决方案1】:

“ifelse”或“with (replace)”函数运行良好。

mydata$code<-ifelse(mydata$duration>15,3,mydata$code)

mydata$code<-with(mydata,replace(code,duration>15,3))

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多