gpt4 book ai didi

r - 指示特定值第一次出现的新变量

转载 作者:行者123 更新时间:2023-12-03 18:15:39 26 4
gpt4 key购买 nike

我想创建一个新变量,指示对变量值的第一个特定观察。

在下面的示例数据集中,我希望有一个新变量“firstna”,该变量为“1”,用于第一次观察该玩家的“NA”。

game_data <- data.frame(player = c(1,1,1,1,2,2,2,2), level = c(1,2,3,4,1,2,3,4), points = c(20,NA,NA,NA,20,40,NA,NA))

game_data
player level points
1 1 1 20
2 1 2 NA
3 1 3 NA
4 1 4 NA
5 2 1 20
6 2 2 40
7 2 3 NA
8 2 4 NA

生成的数据框应如下所示:
game_data_new <- data.frame(player = c(1,1,1,1,2,2,2,2), level = c(1,2,3,4,1,2,3,4), points = c(20,NA,NA,NA,20,40,NA,NA), firstna = c(0,1,0,0,0,0,1,0))

game_data_new
player level points firstna
1 1 1 20 0
2 1 2 NA 1
3 1 3 NA 0
4 1 4 NA 0
5 2 1 20 0
6 2 2 40 0
7 2 3 NA 1
8 2 4 NA 0

老实说,我不知道该怎么做。如果有 dplyr 选项可以这样做,那将是完美的。

最佳答案

一个底座R解决方案:

ave(game_data$points, game_data$player,
FUN = function(x) seq_along(x) == match(NA, x, nomatch = 0))

关于r - 指示特定值第一次出现的新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53481895/

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