我正在使用airquality
R 中可用的数据集,并尝试计算数据中不包含任何数据的行数NA
s,同时聚合Month
.
数据如下:
head(airquality)
# Ozone Solar.R Wind Temp Month Day
# 1 41 190 7.4 67 5 1
# 2 36 118 8.0 72 5 2
# 3 12 149 12.6 74 5 3
# 4 18 313 11.5 62 5 4
# 5 NA NA 14.3 56 5 5
# 6 28 NA 14.9 66 5 6
如你所见,我有NA
列中的 sOzone
and Solar.R
。我使用了该功能complete.cases
如下:
x <- airquality[,1] # for the Ozone
y <- airquality[,2] # for the Solar.R
ok <- complete.cases(x,y)
然后检查:
nrow(airquality)
# [1] 153
sum(!ok)
# [1] 42
sum(ok)
# [1] 111
这太棒了。
但现在,我想将这些数据分开进行排序Month
(第 5 栏)这就是我遇到问题的地方 - 在尝试aggregate
or sort
通过第 5 列中的值 (Month
).
我能够让它运行,它不会排序Month
然而(我只是想确保我可以运行该函数):
aggregate(x = sum(complete.cases(airquality)), by= list(nrow(airquality)), FUN = sum)
# Group.1 x
# 1 153 111
好吧……所以要整理一下。我正在尝试使用by
要排序的聚合函数的一部分。我尝试了column5的许多变体airquality
.
- airquality[,5]
- airquality[,"Month"]
我收到这些错误:
aggregate(x = sum(complete.cases(airquality)), by= list(airquality[,5]), FUN = sum)
# Error in aggregate.data.frame(as.data.frame(x), ...) :
# arguments must have same length
aggregate(x = sum(complete.cases(airquality)), by=
list(sum(complete.cases(airquality)),airquality[,5]), FUN = sum)
# Error in aggregate.data.frame(as.data.frame(x), ...) :
# arguments must have same length
我试图进一步搜索?aggregate(x, ...)
功能。即在by
part...
by - 分组元素列表,每个元素与数据框 x 中的变量一样长。这些元素在使用前会被强制转换为因子。
我抬头?factor
,但似乎不知道如何应用它(如果在这种情况下甚至有必要)。我也尝试过放break =
但没有成功。
没有任何一个“您可能已经有了答案的问题”似乎适用,其中许多给出了 C# 和 SQL 的解决方案。
编辑:预期结果
Count Month
24 5
9 6
26 7
23 8
29 9