根据这个网站/链接/:
如果显式声明默认构造函数但将其标记为已删除,则不能使用空大括号初始化:
它还给出了一个例子:
class class_f {
public:
class_f() = delete;
class_f(string x): m_string { x } {} // if it is deleted, there will be no errors.
string m_string;
};
int main()
{
class_f cf{ "hello" };
class_f cf1{}; // compiler error C2280: attempting to reference a deleted function
}
Run Code Online (Sandbox Code Playgroud)
我真正不明白的是,如果没有用户提供的构造函数,即使删除的默认构造函数仍然存在,也不会再出现错误。据我所知,如果有用户提供的构造函数,就不会存在隐式的默认构造函数,但默认构造函数已经被删除了。所以我不知道在值初始化的情况下调用什么以及为什么它在下面的示例中起作用:
#include <string>
class class_f {
public:
class_f() = delete;
std::string m_string;
};
int main()
{
class_f cf1{}; // Does the implicit-default constructor is called here? But, it …Run Code Online (Sandbox Code Playgroud) 
以下是此测试的源代码:
var tags = new List<string> {"Portland", "Code","StackExcahnge" };
const string separator = " ";
tagString = tags.Aggregate(t => , separator);
Console.WriteLine(tagString);
// Expecting to see "Portland Code StackExchange"
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
更新
这是我现在使用的解决方案:
var tagString = string.Join(separator, tags.ToArray());
Run Code Online (Sandbox Code Playgroud)
结果string.Join是我需要的.
我希望(算术上)平均每日数据,从而将我的每日时间序列转换为每周一次.
遵循这个主题:如何使用R计算每列数据的平均值?,我正在使用xts库.
# Averages daily time series into weekly time series
# where my source is a zoo object
source.w <- apply.weekly(source, colMeans)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,这个系列的平均值是星期二到下一个星期一的数据.
我正在寻找从星期一到星期五平均每日数据的选项.
任何提示?
这里有一点:
# here is part of my data, from a "blé colza.txt" file
24/07/2012 250.5 499
23/07/2012 264.75 518.25
20/07/2012 269.25 525.25
19/07/2012 267 522.5
18/07/2012 261.25 517
17/07/2012 265.75 522.25
16/07/2012 264.25 523.25
13/07/2012 258.25 517
12/07/2012 253.75 513
11/07/2012 246.25 512.75
10/07/2012 248 515
09/07/2012 247 519.25
06/07/2012 …Run Code Online (Sandbox Code Playgroud) 在此先感谢您的帮助.我正在使用R,让我们说我有一个数据表(或最终与动物园的时间序列),格式如下:
Col1: time Values
Day1 H1 Value
Day1 H2 Value
Day1 H3 Value
Day1 H4 Value
Day2 H1 Value
Day2 H2 Value
Day2 H3 Value
Day2 H4 Value
Day3 H1 Value
...
Run Code Online (Sandbox Code Playgroud)
假设我想构造一个具有以下格式的矩阵:行:天
H1 H2 H3 H4
D1 Values Values Values Values
D2 Values Values Values Values
D3 Values Values Values Values
Run Code Online (Sandbox Code Playgroud)
并且:
average(H1,H2) average(H3,H4)
D1 Values Vales
D2 Values Vales
D3 Values Vales
Run Code Online (Sandbox Code Playgroud)
在某些语言(如C++)中,我们可能会进行双重'for',但我不确定这是继续进行此操作的最佳方法.非常感谢,我是R的新手,我对不同的逻辑感到很遗憾(但非常有趣).
我已经看到关于这个主题的其他问题但我根本不清楚.
我有一个很长的查询,跨多个表,我将四个值连接为所有者(名字,中间名和姓氏+组织).所有其他列都是相同的,但有多个所有者,因此,我想聚合多行.
我所看到的是(配对)
# Owner
1 Sam Smith, AAA
2 Stan Bird, BBB
2 Nancy Bird, BBB
3 Mike Owen, CCC
Run Code Online (Sandbox Code Playgroud)
我想看到的是
# Owner
1 Sam Smith, AAA
2 Stan Bird, Nancy Bird, BBB
3 Mike Owen, CCC
Run Code Online (Sandbox Code Playgroud)
注意事项:
我试过CASE(COLLECT...但这会杀死我的联系:
错误 - "无法从套接字读取更多数据"
SysAdmin,不知道为什么
我尝试过其他一些事情,没有运气.我当前的查询产生了所需的行数,但只是砍掉了第二个所有者.
我不确定在这里发布整个查询是否明智.请告诉我这是否有帮助.
更新2012-01-29
wm_concat之前我使用不正确,但是当我使用它时,我收到此错误:
ORA-06502: PL/SQL: numeric or value error: character string buffer too
small ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause:
*Action: …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,其中有5列.在一列中有日期,在第二列中有表面数据,在第3列底部,在第4列和第5列中.
例如,我有一个简单的数据如下:
Date Surface Bottom id diff
250.0416718 17.49998283 17.50068474 apple 0.00070191
250.0833282 17.50042152 17.50049591 apple 7.44E-05
250.125 17.50060844 17.50074196 apple 0.00013352
250.1666718 17.50083923 17.50092125 apple 8.20E-05
250.2083282 17.50104713 17.50112343 apple 7.63E-05
250.25 17.50044441 17.50311279 apple 0.00266838
250.2916718 17.50193024 17.50263214 apple 0.0007019
250.3333282 17.50139427 17.50404167 apple 0.0026474
250.375 17.50112724 17.50495529 apple 0.00382805
250.4166718 17.50050163 17.50526428 apple 0.00476265
250.4583282 17.4996891 17.5043335 apple 0.0046444
250.5 17.50051117 17.50292969 apple 0.00241852
250.5416718 17.50112534 17.50325584 apple 0.0021305
250.5833282 17.50115585 17.50579262 apple 0.00463677
250.625 17.49997902 17.51161766 …Run Code Online (Sandbox Code Playgroud) 假设频率(ts)= 52的时间序列ts:
Time Series:
Start = c(2010, 34)
End = c(2013, 25)
Frequency = 52
...
Run Code Online (Sandbox Code Playgroud)
我想聚合ts,使得频率(ts)= 12.
如果新频率除以旧频率,则可以使用
aggregate(ts, nfrequency = k, FUN = sum)
Run Code Online (Sandbox Code Playgroud)
但如果旧频率mod新频率> 0则不起作用:
> ts <- aggregate(ts, nfrequency = 12, FUN = sum)
Error in aggregate.ts(ts, nfrequency = 12, FUN = sum) :
cannot change frequency from 52 to 12
Run Code Online (Sandbox Code Playgroud)
我可以设想循环遍历时间序列并决定每个值是完全添加还是一小部分,但我肯定不是第一个有这个要求的.那么有任何预定义的功能吗?
我有一个工作查询,告诉我最接近美国每个邮政编码的商店位置,但是当我尝试让外部查询选择所述商店的相关邮政编码时,它告诉我必须将ZipCode添加到总计; 但是,如果我通过Zip订购,那么它并没有向我展示所有的笛卡尔产品.任何帮助表示赞赏.
select
Sub1.Zip as Zip,
Sub1.Zip_ID as Zip_ID,
MIN(Sub1.Distance) as Distance from
(
SELECT
Z.Zip,
Z.Zip_ID,
((Sqrt(Square((Z.lat - S.lat) *68.96799738887665)
+ Square((Z.long - S.long)*54.69366983621222)))) Distance
FROM
Tbl_Stores_Coordinates S
CROSS JOIN Zip_Code_Coordinates Z
)Sub1
group by Sub1.Zip_ID
Run Code Online (Sandbox Code Playgroud) 我想在一个data.frame与所做的相似的交叉因子水平上应用一个函数aggregate,但是对于比aggregate可以处理的更复杂的函数.
例如.
fact1=c(rep('A',6),rep('B',6))
fact2=c(rep(c(rep('C',3),rep('D',3)),2))
crit1=rnorm(12)
crit2=crit1+rnorm(12)
dat=data.frame(fact1,fact2,crit1,crit2)
target.fit = function(dat){
mod=lm(dat$crit2~dat$crit1)
return(mod$coefficients[2])
}
Run Code Online (Sandbox Code Playgroud)
此代码生成一个data.frame dat.目标是适用target.fit于每个交叉级别fact1和fact2(此处为lm).
对于仅需要一个输入向量的函数(例如均值使用),这很简单aggregate.
> aggregate(dat,list(fact1=fact1,fact2=fact2),mean)
fact1 fact2 fact1 fact2 crit1 crit2
1 A C NA NA -0.5875951 -0.6048572
2 B C NA NA 0.3712372 0.9135742
3 A D NA NA -1.0163750 -2.4971846
4 B D NA NA 0.3937682 0.6227697
Run Code Online (Sandbox Code Playgroud)
但是,aggregate对于多变量输入不起作用.
> aggregate(dat,list(fact1=fact1,fact2=fact2),target.fit)
Error in dat$crit2 : $ …Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据框:
df <- data.frame(a=c(111,111,111,222,222,222,333,333,333),
b=c(1,0,1,1,1,1,0,0,1))
df
a b
1 111 1
2 111 0
3 111 1
4 222 1
5 222 1
6 222 1
7 333 0
8 333 0
9 333 1
Run Code Online (Sandbox Code Playgroud)
我需要为每个“ a”获取列“ b”的总和:
A B
1 111 2
2 222 3
3 333 1
Run Code Online (Sandbox Code Playgroud)
我如何最快地做到这一点?