我正在使用Interactive-Haskell repl进入奇怪的行为emacs
.当我获取文件时,emacs
迷你缓冲区显示一系列交互式提示:
Start a new project named 'myproject'?
Cabal dir (guessed from myproject.cabal):
Build target (empty for default):
Set current directory:
Run Code Online (Sandbox Code Playgroud)
如果我将cabal目录或当前目录保留为项目目录的默认值,则repl将无响应.我在交互式Haskell窗口中得到一个lambda提示符,我可以输入,但是当我按下回车键时,它从不进行评估.光标停留在同一条线上,好像我根本没有按Enter键.
如果我将这两个目录更改为除项目目录之外的某个路径,则repl会正常运行并按预期方式计算表达式.
我有一个宽格式的数据帧,在不同的日期范围内重复测量.在我的例子中,有三个不同的时期,都有相应的值.例如,第一测量(Value1
)是在测量期间从DateRange1Start
到DateRange1End
:
ID DateRange1Start DateRange1End Value1 DateRange2Start DateRange2End Value2 DateRange3Start DateRange3End Value3
1 1/1/90 3/1/90 4.4 4/5/91 6/7/91 6.2 5/5/95 6/6/96 3.3
Run Code Online (Sandbox Code Playgroud)
我希望将数据重新整形为长格式,以便将DateRangeXStart和DateRangeXEnd列分组.因此,原始表中的1行在新表中变为3行:
ID DateRangeStart DateRangeEnd Value
1 1/1/90 3/1/90 4.4
1 4/5/91 6/7/91 6.2
1 5/5/95 6/6/96 3.3
Run Code Online (Sandbox Code Playgroud)
我知道必须有一种方法可以用reshape2
/ melt
/ recast
/ 来做到这一点tidyr
,但我似乎无法弄清楚如何以这种特殊方式将多组度量变量映射到单个值列集.
我见过这个帖子:如何在C++中读取和解析CSV文件?
但重新发明轮子以获得像CSV解析器一样通用的东西似乎很愚蠢.Boost有一些便于解析的例程,但没有开箱即用的东西.
在其他地方,我看到与.NET相关的推荐库或其他特定于平台的库.很难相信没有一个首选的开放C++库可以为这个例程做点什么.
有什么建议?
在C++中,我使用transform将地图的所有值更改为大写.
std::map<std::string, std::string> data = getData();
// make all values uppercase
std::transform(data.begin(), data.end(), data.begin(),
[](std::pair<std::string, std::string>& p) {
boost::to_upper(p.second);
return(p);
});
Run Code Online (Sandbox Code Playgroud)
这给了我以下编译错误:
/opt/local/include/gcc46/c++/bits/stl_algo.h:4805:2: error: no match for call to '(main(int, char**)::<lambda(std::pair<std::basic_string<char>, std::basic_string<char> >&)>) (std::pair<const std::basic_string<char>, std::basic_string<char> >&)
Run Code Online (Sandbox Code Playgroud)
我认为我的lambda表达式中的参数类型有问题.它可能很简单,但我似乎无法弄清楚预期的结果.
我有兴趣为函数添加一个开括号(但不是if语句和其他上下文).例如
void foo()
{
...
}
Run Code Online (Sandbox Code Playgroud)
除了Flamewars之外,还有一个很好的理由不这样做吗?虽然我对if/else和less块使用相同的开放括号,但我认为在这种情况下,更大的代码单元(函数/方法/类/结构)的可视化组织可以胜过完美的一致性.
此外,我如何让clang-format遵循这种风格?
我想在mac上构建最新版本的gcc.我有最新的xcode,但我正在寻找更新版本的一些c ++ 0x功能(lambda函数等).
这样做有没有任何好的分步教程?
我被AWS免费套餐所吸引,试试EC2/S3.但是,我担心的一件事是付款流程.有很多管理菜单,当我打破免费使用层时(或者如果我决定支付,当我打破使用层时),它似乎并不完全透明.
您可以下载.csv使用情况报告,但我希望计费/使用情况监控更具互动性,所以我不会感到不愉快.有没有人有经验EC2,管理界面的某些方面是否使这更容易/更少令人担忧?
通过将ggplot()对象分配给变量,可以轻松地重用该对象,并在几何图层上创建具有变体的多个版本的绘图,而无需为每个绘图分配冗余代码.但是,我想知道是否有一种方法可以在交换全局美学映射时重用geom层.
一个用例就是我想要制作几个具有相同几何表示的图,但是想要换出映射到其中一个维的变量.另一个用例是我想制作两个图,其中数据来自两个不同的数据帧.
解决这个问题的直观方法是:1)将geom图层组合保存到变量而不指定ggplot()对象,或2)通过添加另一个对象来覆盖变量中现有ggplot()对象的数据和美观ggplot()对象.执行这些操作中的任何一个都会导致错误(对于二进制运算符的1-"非数字参数,对于2 - "不知道如何将o添加到绘图中").
例如,假设在下面的图中我想重新使用gg变量,但是将x变量重新映射到dataframe中的其他内容:
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
gg <-
(ggplot(data = dsamp, aes(x = carat, y = price, color = clarity))
+ geom_point()
+ facet_wrap(~ cut))
print(gg)
Run Code Online (Sandbox Code Playgroud)
在实践中,绘图定义可能超过3行,这就是为什么这开始是代码维护烦恼.
据我了解,在Qt应用程序中打包非代码资源(如数据文件)的方法是使用资源系统.但是,如果我想使用非Qt函数访问资源该怎么办?例如,我可能有一个.txt或.csv文件,其中包含一些我想使用ifstream访问的应用程序数据.似乎不能使用":..."语法代替非Qt函数和类的文件名.是否有单独的工作流程来打包应用程序中非Qt函数使用的数据?
我正在使用OSX,但我认为这些问题与平台无关.
我是haskell和cabal的新手,所以我可能会错过一些简单的东西.
我更新了cabal-install:
sudo cabal install cabal-install
Password:
Resolving dependencies...
Configuring cabal-install-1.22.0.0...
Building cabal-install-1.22.0.0...
Installed cabal-install-1.22.0.0
Updating documentation index
Run Code Online (Sandbox Code Playgroud)
但是cabal --version
说:
cabal-install version 1.18.0.5
using version 1.18.1.4 of the Cabal library
Run Code Online (Sandbox Code Playgroud)
cabal-install 1.22.0.0发生了什么?