gpt4 book ai didi

r - R从面板上移除行,同时保持面板平衡

转载 作者:行者123 更新时间:2023-12-04 09:42:33 29 4
gpt4 key购买 nike

是否有一种优雅的方法来平衡不平衡的面板数据集?我想从一个不平衡的面板开始(即,某些人缺少一些数据),最后以一个平衡的面板(即,所有人都没有数据)开始。以下是一些示例代码。正确的最终结果是保留对“弗兰克”和“爱德华”的所有观察结果,以及对“托尼”的所有观察结果被删除,因为他缺少一些数据。谢谢你。

unbal <- data.frame(PERSON=c(rep('Frank',5),rep('Tony',5),rep('Edward',5)), YEAR=c(2001,2002,2003,2004,2005,2001,2002,2003,2004,2005,2001,2002,2003,2004,2005), Y=c(21,22,23,24,25,5,6,NA,7,8,31,32,33,34,35), X=c(1:15))
unbal

最佳答案

平衡面板的一种方法是删除数据不完整的个人,另一种方法是为缺失的观察值填充值,例如NA0。对于第一种方法,可以使用complete.cases查找其中没有NA的行。然后,您可以找到所有PERSON,且至少包含一个缺少的大小写。

missing.at.least.one <- unique(unbal$PERSON[!complete.cases(unbal)])
unbal[!(unbal$PERSON %in% missing.at.least.one),]
# PERSON YEAR Y X
# 1 Frank 2001 21 1
# 2 Frank 2002 22 2
# 3 Frank 2003 23 3
# 4 Frank 2004 24 4
# 5 Frank 2005 25 5
# 11 Edward 2001 31 11
# 12 Edward 2002 32 12
# 13 Edward 2003 33 13
# 14 Edward 2004 34 14
# 15 Edward 2005 35 15

关于r - R从面板上移除行,同时保持面板平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25671246/

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