gpt4 book ai didi

R:拆分此样本的更好方法

转载 作者:行者123 更新时间:2023-12-05 00:22:41 26 4
gpt4 key购买 nike

我是初学者 R我所做的几乎所有事情都来自我从其他语言中学到的典型方法。然而,每当我寻找 R相关答案在这里,代码结构与我预期的大不相同。

我有一个包含个人面板数据的 data.table。我想查看一个特征的平均结果,然后将样本分成两次:高于平均结果中位数的那些,以及低于平均结果中位数的那些。

这是我的 data.table 的结构,yearly :

       user     wage year
1: 65122111 9.74 2003
2: 65122111 7.85 2004
3: 65122111 97.16 2005
4: 65122111 48.22 2006
5: 65122111 91.24 2007
6: 65122111 9.35 2008
7: 65122112 80.00 2007
8: 65122112 0.00 2008

这就是我所做的:
## get mean wages
meanWages <- yearly[, list(meanWage = mean(wage)), by=(user)]
## split by median
highWage <- meanWages[meanWage > median(meanWages[, meanWage]), user]
lowWage <- meanWages[meanWage < median(meanWages[, meanWage]), user]
## split original sample
yearlyHigh <- yearly[is.element(user,highWage),]
yearlyLow <- yearly[is.element(user,highWage),]

我想这给了我我所期望的(检查正确性非常麻烦),但它似乎非常笨拙且效率低下。做同样事情的更有效和更压缩的方式是什么?

最佳答案

您可以尝试以下操作,尽管我不能确定这是最有效或最紧凑的。

yearly[, meanwage := mean(wage), by=user]
yearlyHigh <- yearly[meanwage >= median(meanwage)]
yearlyLow <- yearly[meanwage < median(meanwage)]

关于R:拆分此样本的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29628439/

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