【发布时间】:2015-11-03 17:31:52
【问题描述】:
我想在我的表中添加一个列,将一个值与现有列“农场”中的前一个值进行比较(以检查它是否相同);并且还控制当前行中的值是否为“NULL”。目标是当该行的“农场”列中的值与“农场”列的前一行中的值不同时,返回新列“切换”值“新”。 (除非farm中的值为“NULL”,然后我想取回“”)
在下面查看所需的输出:
farm switch
A
A
NULL
B new
B
B
A new
A
A
B new
B
B
NULL
A new
A
我尝试使用以下代码解决此问题:
#To add a new column switch
MyData["switch"] <- NA
#To check if the value is different from the previous row; and if the value is different from NULL
MyData$switch <- ifelse((MyData$farm == lag(MyData$farm))||MyData$farm=="NULL","",MyData$farm)
但是当我使用此代码时,我添加的列只有空值? 有人可以澄清我做错了什么并帮助我编写可能有效的代码吗?
【问题讨论】:
-
在填充数据之前,无需添加新的
NA值列:第一条语句完全是多余的。
标签: r if-statement lag