gpt4 book ai didi

r - 如何在 R 中的 NA 之后生成虚拟变量

转载 作者:行者123 更新时间:2023-12-04 10:58:32 27 4
gpt4 key购买 nike

我正在尝试使用以下规则生成虚拟变量,

For DV in Data:    
set: Flag "1" for all NA in DV
set: Flag "0" otherwise

下面给出了一个样本数据集

year    country DV
1990 Bahamas 2
1991 Bahamas NA
1992 Bahamas NA
1993 Bahamas 0
1994 Bahamas 1
1995 Bahamas 2
1996 Bahamas NA
1997 Bahamas 2
1998 Bahamas NA
1999 Bahamas 2
2000 Bahamas NA
2001 Bahamas 1
2002 Bahamas NA
2003 Bahamas 1
2004 Bahamas NA
2005 Bahamas 2
2006 Bahamas NA
2007 Bahamas 0
2008 Bahamas 1
2009 Bahamas 2
2010 Bahamas NA
2011 Bahamas 2

从提到的规则,很明显Flags要设置如下,

year    country DV  Flag
1990 Bahamas 2 0
1991 Bahamas NA 0
1992 Bahamas NA 0
1993 Bahamas 0 1
1994 Bahamas 1 0
1995 Bahamas 2 0
1996 Bahamas NA 0
1997 Bahamas 2 1
1998 Bahamas NA 0
1999 Bahamas 2 1
2000 Bahamas NA 0
2001 Bahamas 1 1
2002 Bahamas NA 0
2003 Bahamas 1 1
2004 Bahamas NA 0
2005 Bahamas 2 1
2006 Bahamas NA 0
2007 Bahamas 0 1
2008 Bahamas 1 0
2009 Bahamas 2 0
2010 Bahamas NA 0
2011 Bahamas 2 1

需要明确的是,Flag 仅根据列DV 设置,而不管DV 之后或之前的内容。

我目前正在尝试这个: data$Flag <- ave(data$country, data$DV, FUN = function(x) if (max(x) == NA) 1 else 0)

显然这看起来不正确,我知道这一点。这里的任何帮助将不胜感激。

谢谢。

最佳答案

怎么样

data$X <- 0
data$X[which(is.na(data$DV)) + 1] <- !is.na(data$DV[which(is.na(data$DV)) + 1])

关于r - 如何在 R 中的 NA 之后生成虚拟变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50540392/

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