我想用magrittr的管道重写以下代码:
max(diff(which(diff(runif(50)) > 0 )))
Run Code Online (Sandbox Code Playgroud)
我直截了当的做法是:
library(magrittr)
runif(50) %>% diff > 0 %>% which %>% diff %>% max
Run Code Online (Sandbox Code Playgroud)
但这种失败是由于(第一),其中:
runif(50) %>% diff > 0 %>% which
Run Code Online (Sandbox Code Playgroud)
错误,其中(.):'which'的参数不合逻辑
我不确定为什么会发生这种错误以及为什么管道与管道连接到其他函数不同,因为"diff> 0"的输出是一个逻辑向量.
在旁注中,直言不讳地说,是否有办法进行比较
runif(50) %>% diff %>% > 0
Run Code Online (Sandbox Code Playgroud)
谢谢你的建议!
我一直在尝试创建自己的主要检查功能,虽然奇怪的是当我调用isPrime(7)它返回1时,这很好,但是当我调用isPrime(9)时它会给我以下错误:
'Mathematics.exe':已加载'C:\ Documents and Settings\mbryant\My Documents\Visual Studio 2010\Projects\Mathematics\Debug\Mathematics.exe',已加载符号.'Mathematics.exe':加载'C:\ WINDOWS\system32 \ntdll.dll',找不到或打开PDB文件'Mathematics.exe':加载'C:\ WINDOWS\system32\kernel32.dll',找不到或者打开PDB文件'Mathematics.exe':加载'C:\ WINDOWS\system32\msvcp100d.dll',加载符号.'Mathematics.exe':已加载'C:\ WINDOWS\system32\msvcr100d.dll',已加载符号.线程'Win32 Thread'(0x6ec)已退出,代码为-1073741510(0xc000013a).
这是代码:
#include <iostream>
using namespace std;
bool isPrime(int x){
int b = 0;
int i = 2;
if(x == 2){
return 1;
}
if (x > 2){
while(i < x){
if ( (x % i) != 0){
b = b + 1;
i = i + 1;
}
}
if (b > 0){
return 1;
} if (b == 0){
return 0;
}
} …
Run Code Online (Sandbox Code Playgroud) 我出现了以下代码:
public static class FuncUtils
{
public static Func<T1, T3> Compose<T1, T2, T3> (Func<T1, T2> f1, Func<T2, T3> f2)
{
return a => f2(f1(a));
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说最大的谜团就是这个
返回 a => f2(f1(a));
你能解释一下它是如何工作的吗?
我目前在我的场景中有一个立方体,我已经四处移动了.我希望另一个立方体始终具有相同的y值.因此,如果第一个立方体向下移动10个单位,我希望另一个立方体做同样的事情.
我的第一个多维数据集是在编辑器中手动创建的,但我的另一个是使用脚本放置的.谢谢!
int trail = 14;
double mean = 14.00000587000000;
double sd = 4.47307944700000;
double zscore = double.MinValue;
zscore = (trail - mean) / sd; //zscore at this point is exponent value -1.3122950464645662E-06
zscore = Math.Round(zscore, 14); //-1.31229505E-06
Run Code Online (Sandbox Code Playgroud)
Math.Round()
也保持指数值.应该zscore.ToString("F14")
使用而不是Math.Round()
函数将其转换为非指数值?请解释.
如标题所述,我们是否需要为模块手动实现延迟加载,还是Angular 6/7默认执行?
为什么这是模棱两可的?
// In class declaration
template<typename T>
class threadsafe_list {
void for_each(std::function<void(T&)> _consumer);
void for_each(std::function<void(const T&)> _consumer) const;
}
Run Code Online (Sandbox Code Playgroud)
// Calling for_each
threadsafe_list<bool> list;
std::function<void(const bool&)> print = [](const bool& _bool) {
std::cout << (_bool ? "True" : "False") << std::endl;
};
// Warning: for_each is ambiguous
list.for_each(print);
// This is OK
list.for_each([](const bool& _bool) { std::cout << (_bool ? "True" : "False") << std::endl; });
Run Code Online (Sandbox Code Playgroud)
为什么上面的说法有歧义?for_each 之一用于 const 而另一个则不是。谢谢!
TL; DR;
C#语言是否确保int
必须具有以下属性中的一个且仅具有以下属性?
0
0
0
准确地说,这个断言是否保证永不失败?
public void CheckFacts(int n)
{
int trueFacts = 0;
if (n > 0) trueFacts += 1;
if (n == 0) trueFacts += 1;
if (n < 0) trueFacts += 1;
Assert.AreEqual(trueFacts, 1);
}
Run Code Online (Sandbox Code Playgroud)
后续问题:如果是,对于各种整数类型是否也是如此?(uint,long,ulong,sbyte,byte,short,ushort,...)
对于那些可能认为这个问题有点偏离的人,不要忘记计算机数字可能会令人惊讶.
例如,这不是double
必须为正,负或零的情况.它可以是NaN
,值将导致上述断言失败.+0.0
或者-0.0
,3个
编辑:
有人说我不知何故花时间写这个问题,但不是一分钟看规格.我实际上花了很多时间阅读:https://msdn.microsoft.com/fr-fr/library/system.int32(v = vs1010).aspx,因为int
它应该是别名System.Int32
.老实说,我不确定我的问题是否明确.另外,我彻底搜索了关于SO的c#问题,因为我认为有人必须先问过这个问题.对不起,如果这个问题对某些人来说显而易见,那对我来说就不是了.
我想用C++中的几个科学常数做一些计算,比如
我有像sqrt((2kT)/ m)这样的计算
为这些常量和结果使用double是否安全?
我们有以下方法允许我们搜索DataGrid的Projects表:
public async Task<IEnumerable<Project>> GetFilteredProjects(string searchString)
{
var projects = _context.Projects.Where(p => p.Current);
projects.Include(p => p.Client);
projects.Include(p => p.Architect);
projects.Include(p => p.ProjectManager);
if (!string.IsNullOrEmpty(searchString))
{
projects = projects
.Where(p => p.NormalizedFullProjectName.Contains(searchString)
|| p.Client.NormalizedName.Contains(searchString)
|| p.Architect.NormalizedFullName.Contains(searchString)
|| p.ProjectManager.NormalizedFullName.Contains(searchString));
}
projects = projects.OrderBy(p => p.Name).Take(10);
return await projects.ToListAsync();
}
Run Code Online (Sandbox Code Playgroud)
如果我们不使用Include
项目,那么搜索是即时的.但是,在搜索中添加它们之后可能需要3秒多.
我们需要包含其他实体以允许用户根据需要搜索它们.
我们如何才能提高性能,但仍然Include
允许搜索它们?
没有Incldue
方法看起来像这样:
public async Task<IEnumerable<Project>> GetFilteredProjects(string searchString)
{
var projects = _context.Projects.Where(p => p.Current);
if (!string.IsNullOrEmpty(searchString))
{
projects = projects
.Where(p => p.Name.Contains(searchString));
}
projects …
Run Code Online (Sandbox Code Playgroud)