gpt4 book ai didi

R - 测试值是否与上面单元格中的值相同

转载 作者:行者123 更新时间:2023-12-05 00:49:11 24 4
gpt4 key购买 nike

我有以下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

但是有没有更清洁的方法呢? (我一直用这个)...

最佳答案

添加到 Rafael 的答案,您可以使用 ifelsedplyr::mutate:

> dt <- data_frame(name = c('A', 'B', 'C', 'D', 'E', 'F'), color = c('red', 'red', 'green', 'red', 'red', 'red'))
> dt
# A tibble: 6 x 2
name color
<chr> <chr>
1 A red
2 B red
3 C green
4 D red
5 E red
6 F red
> dt %>% mutate(same = ifelse(color == lag(color), 1, 0))
# A tibble: 6 x 3
name color same
<chr> <chr> <dbl>
1 A red NA
2 B red 1
3 C green 0
4 D red 0
5 E red 1
6 F red 1

关于R - 测试值是否与上面单元格中的值相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com