疯狂的问题...但是,我想要一个表中的所有行的总和(不使用group by子句)
例:
Table = Survey
Columns = Answer1, Answer2, Answer3
1 1 1
4 3 5
3 3 2
Run Code Online (Sandbox Code Playgroud)
我想要每列的总和.
最终结果应如下所示:
Answer1Sum Answer2Sum Answer2Sum
8 7 8
Run Code Online (Sandbox Code Playgroud)
这不起作用:
from survey in SurveyAnswers
select new
{
Answer1Sum = survey.Sum(),
Answer2Sum = survey.Sum(),
Answer3Sum = survey.Sum()
}
Run Code Online (Sandbox Code Playgroud)
如果我有以下NSManagedObject,我如何获得值number1的平均值和值的平均值number2?
@interface Log : NSManagedObject
{
}
@property (nonatomic, retain) NSNumber * number1;
@property (nonatomic, retain) NSNumber * number2;
Run Code Online (Sandbox Code Playgroud)
感谢:D
我想要做的是计算子查询返回的行数,基本上如下:
select pp.prop_id, COUNT((select employee_id from employee e where e.ao1_hours > 0))
from proposal_piece pp
group by pp.prop_id
order by pp.prop_id
Run Code Online (Sandbox Code Playgroud)
这是我的错误消息:
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?如果select只返回一堆employee_id's带有过滤条件的行为,为什么我不能计算行数或employee_id's返回的行数?
我希望能算出拥有的不同员工的数量ao1_hours > 0.由...分组prop.
以下是有关我的数据库的一些结构信息,作为查询的一部分.
from proposal_piece pp
INNER JOIN employee e
on pp.employee_id = e.employee_id
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个如下所示的数据框:
Timedate TotalSolar_MW
20 2013-06-01 04:45:00 13.0
21 2013-06-01 05:00:00 41.7
22 2013-06-01 05:15:00 81.8
23 2013-06-01 05:30:00 153.0
24 2013-06-01 05:45:00 270.7
25 2013-06-01 06:00:00 429.3
26 2013-06-01 06:15:00 535.4
Run Code Online (Sandbox Code Playgroud)
"Timedate"是POSIXlt,而"Total_Solar"是numeric.时间步长为15分钟,从6月1日,0:00到6月24日,24:00.
现在我想aggregate按小时计算每小时数据,例如2013-06-01 06:00:00 934.8MW(81.8MW + 153.0MW + 270.7MW + 429.3MW;从05:15到06:00)
我试过这个:
Sum <-aggregate(Total_Solar_Gesamt$TotalSolar_MW,
list(as.POSIXlt(Total_Solar_Gesamt$Timedate)$hour), FUN=sum)
Run Code Online (Sandbox Code Playgroud)
但它返回整个数据框的聚合小时数据,并为我提供了一个新的data.frame,包含24行,每小时总计MW.
如何更改结构,只是从四分之一小时减少到每小时一次?我尝试了一个for循环,但这也没有用.也subset没对我工作.
谢谢您的帮助!
我正在尝试聚合一些数字和因子变量的数据.如果变量是数字我喜欢平均值.如果这是一个我喜欢最常见价值的因素.我写了以下函数但是没有得到我想要的输出:
meanOrMostFreq <- function(x){
if(class(x) == 'factor'){
tbl <- as.data.frame(table(x))
tbl$Var1 <- as.character(tbl$Var1)
return(tbl[tbl$Freq == max(tbl$Freq),'Var1'][1])
}
if(class(x) == 'numeric'){
meanX <- mean(x, na.rm = TRUE)
return(meanX)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我使用它的方式:
df1 <- iris[1:148,]
df1$letter1 <- as.factor(rep(letters[1:4], 37))
momf <- aggregate(.~ Species, df1, FUN = function(x) meanOrMostFreq(x))
Run Code Online (Sandbox Code Playgroud)
结果如下:
> momf
Species Sepal.Length Sepal.Width Petal.Length Petal.Width letter1
1 setosa 5.006000 3.428000 1.462000 0.246 2.46
2 versicolor 5.936000 2.770000 4.260000 1.326 2.54
3 virginica 6.610417 2.964583 5.564583 2.025 2.50
Run Code Online (Sandbox Code Playgroud)
我希望在最后一栏中得到一个实际的字母,而不是一个数字.关于我做错的任何建议?
我还在学习R中的数据管理.我知道我非常接近,但无法获得精确的语法.我通过使用R中的条件 和 条件计数以及在R中分组来查看 计数变量 但是不能完全转换为我的工作.我试图得到一个由ST等于0的dist.km计数.最终我想要添加具有不同距离范围的计数的列,但是应该能够在得到它之后得到它.最终表应该具有所有状态并且计数为0.这是一个20行的样本.
structure(list(ST = structure(c(12L, 15L, 13L, 10L, 15L, 16L,
11L, 12L, 8L, 14L, 10L, 14L, 6L, 11L, 5L, 5L, 15L, 1L, 6L, 4L
), .Label = c("CT", "DE", "FL", "GA", "MA", "MD", "ME", "NC",
"NH", "NJ", "NY", "PA", "RI", "SC", "VA", "VT", "WV"), class = "factor"),
Rfips = c(42107L, 51760L, 44001L, 34001L, 51061L, 50023L,
36029L, 42101L, 37019L, 45079L, 34029L, 45055L, 24003L, 36027L,
25009L, 25009L, 51760L, 9003L, 24027L, 1111L), zip = c(17972L,
23226L, 2806L, 8330L, …Run Code Online (Sandbox Code Playgroud) 我在计算聚合方法时遇到麻烦.请参阅以下代码:
tab=data.frame(a=c(1:3,1:3), b=c(1,2,NA,3,NA,NA))
tab
a b
1 1 1
2 2 2
3 3 NA
4 1 3
5 2 NA
6 3 NA
attach(tab)
aggregate(b, by=list(a), data=tab, FUN=mean, na.rm=TRUE)
Group.1 x
1 1 2
2 2 2
3 3 NaN
Run Code Online (Sandbox Code Playgroud)
如果向量具有所有NA,我想要NA而不是NaN,即我想要输出
Group.1 x
1 1 2
2 2 2
3 3 NA
Run Code Online (Sandbox Code Playgroud)
我尝试使用自定义函数:
adjmean=function(x) {if(all(is.na(x))) NA else mean(x,na.rm=TRUE)}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
aggregate(b, by=list(a), data=tab, FUN=adjmean)
Error in FUN(X[[1L]], ...) :
unused argument (data = list(a = c(1, 2, 3, 1, 2, …Run Code Online (Sandbox Code Playgroud) 我有一个数据框df1:
number=c(4,3,2,3,4,1)
year=c("2000","2000","2000", "2015", "2015", "2015")
items=c(12, 10, 15, 5, 10, 7)
df1=data.frame(number, year, items)
setDT(df1)[, Prop := number/sum(number), by = year]
Run Code Online (Sandbox Code Playgroud)
这样看起来像这样:
number year items Prop
1: 4 2000 12 0.4444444
2: 3 2000 10 0.3333333
3: 2 2000 15 0.2222222
4: 3 2015 5 0.3750000
5: 4 2015 10 0.5000000
6: 1 2015 7 0.1250000
Run Code Online (Sandbox Code Playgroud)
我想获取每年项目数的平均值,因此我尝试使用此功能:
mean.df1=aggregate((df1$number*df1$Prop),list(df1$year), mean)
Run Code Online (Sandbox Code Playgroud)
但返回的均值错误值。我希望它返回:
Group.1 x
1 2000 2.918918
2 2015 2.296296
Run Code Online (Sandbox Code Playgroud)
其中Group.1是年份,x是正确的平均值。
谢谢!
我有一个熊猫数据框:
id city
000.tushar@gmail.com Bangalore
00078r@gmail.com Mumbai
0007ayan@gmail.com Jamshedpur
0007ayan@gmail.com Jamshedpur
000.tushar@gmail.com Bangalore
00078r@gmail.com Mumbai
00078r@gmail.com Vijayawada
00078r@gmail.com Vijayawada
00078r@gmail.com Vijayawada
Run Code Online (Sandbox Code Playgroud)
我想以id-wise查找出现的最大城市名称。因此,对于给定的ID,我可以说-这是他最喜欢的城市:
id city
000.tushar@gmail.com Bangalore
00078r@gmail.com Vijayawada
0007ayan@gmail.com Jamshedpur
Run Code Online (Sandbox Code Playgroud)
使用groupby id和city可以得到:
id city count
0 000.tushar@gmail.com Bangalore 2
1 00078r@gmail.com Mumbai 2
2 00078r@gmail.com Vijayawada 3
3 0007ayan@gmail.com Jamshedpur 2
Run Code Online (Sandbox Code Playgroud)
如何进一步进行?我相信一些按组申请可以做到这一点,但不知道到底是什么会成功。所以请提出建议。
如果两个或三个城市的ID数相同,则可以返回其中任何一个城市。
为了简化我的问题,我创建了一个小型DataFrame,如下所示:
Type From To
A "H1" "U1"
A "H9" "I8"
A "H1" "IL"
B "P2" "P8"
B "P2" "P7"
C "P9" "O8"
C "P9" "I0"
C "P7" "O8"
Run Code Online (Sandbox Code Playgroud)
在对字符串进行分组和汇编之后,我们应该得到以下期望的结果:
Type From To
A "H1" "U1, IL"
A "H9" "I8"
B "P2" "P8, P7"
C "P9" "O8, I0"
C "P7" "O8"
Run Code Online (Sandbox Code Playgroud)
我做了它R使用split和aggregate功能.对于任何想法或建议如何使用Python,我将非常感谢!