gpt4 book ai didi

r - 聚合 - R 中的 na.omit 和 na.pass 因子(按因子分组)?

转载 作者:行者123 更新时间:2023-12-04 10:39:17 25 4
gpt4 key购买 nike

我有一个包含工资测试数据的数据集。并非所有单元格都有值,因此我使用了 na.action=na.pass,na.rm=TRUE 但它给了我一个错误,因为我想与 JobTitle 聚合,这是因子?

到目前为止,我已经开发了以下代码:

aggregate(salaries$JobTitle, 
list(pay = salaries$TotalPay),
FUN=mean,
na.action=na.pass,
na.rm=TRUE)

我的测试数据有以下列:
'data.frame':   104 obs. of  36 variables:
$ Id : int 1 2 3 4 5 6 7 8 9 10 ...
$ EmployeeName : Factor w/ 11 levels "","ALBERT PARDINI",..: 10 7 2 4 11 6 3 5 9 8 ...
$ JobTitle : Factor w/ 9 levels "","ASSISTANT DEPUTY CHIEF II",..: 8 4 4 9 6 2 3 7 3 5 ...
$ BasePay : num 167411 155966 212739 77916 134402 ...
$ OvertimePay : num 0 245132 106088 56121 9737 ...
$ OtherPay : num 400184 137811 16453 198307 182235 ...
$ Benefits : logi NA NA NA NA NA NA ...
$ TotalPay : num 567595 538909 335280 332344 326373 ...
$ TotalPayBenefits: num 567595 538909 335280 332344 326373 ...
$ Year : int 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 ...
$ Notes : logi NA NA NA NA NA NA ...
$ Agency : Factor w/ 2 levels "","San Francisco": 2 2 2 2 2 2 2 2 2 2 ..

出现的错误代码是
Warning messages:
1: In mean.default(X[[i]], ...) :
argument is not numeric or logical: returning NA
2: In mean.default(X[[i]], ...) :
argument is not numeric or logical: returning NA

等等...

我尝试过使用salary$Id 并且它像魔术一样工作,所以我认为代码是正确的,也许我需要更改JobTitle 的数据类型?

最佳答案

如果我们得到 mean 'TotalPay grouped by 'JobTitle', the公式方法将是

aggregate(TotalPay~JobTitle, salaries, mean, na.rm=TRUE, na.action=na.pass)

或使用
aggregate(salaries$TotalPay, list(salaries$JobTitle), FUN=mean, na.rm=TRUE) 

数据
set.seed(24)
salaries <- data.frame(JobTitle = sample(LETTERS[1:5], 20,
replace=TRUE), TotalPay= sample(c(1:20, NA), 20))

关于r - 聚合 - R 中的 na.omit 和 na.pass 因子(按因子分组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546992/

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