【发布时间】:2017-11-23 09:39:29
【问题描述】:
我有以下df:
name color
A red
B red
C green
D red
E red
F red
我想测试“颜色”列中的值,看看它们是否与上面行中的值相同,然后写入新列...我可以使用以下方法:
> df$same <- ifelse(df$color == df$color[c(NA,1:(nrow(df)-1))], 1, 0)
给我:
name color same
A red NA
B red 1
C green 0
D red 0
E red 1
F red 1
但是有没有更清洁的方法呢? (我一直用这个)...
【问题讨论】:
-
可能不干净,但这里有一个替代方案:
as.integer(c(NA, diff(as.integer(dat$color)) == 0))。
标签: r if-statement dataframe dplyr na