我有两个向量,我想在R中创建一个列表,其中一个向量是键,另一个是值.我以为我会在我的书中轻松找到答案或googleing并且我期待找到一个解决方案,比如在向量中添加名称(名称(v)< - names_vector),但我失败了.
我有两种可能的解决方案,但对我来说似乎都不优雅.R不是我的主要编程语言,但我认为R是如此实用,应该存在更好的解决方案(类似于list(keys = x,values = y)).
我的解决方案1:经典循环解决方案:
> xx <- 1:3
> yy <- letters1:3
> zz =list()
>for(i in 1:length(yy)) {zz[[yy[i]]]<-xx[i]}
Run Code Online (Sandbox Code Playgroud)
我的解决方案2:通过命名向量的间接路径:
> names(xx) <- letters[1:3]
> as.list(xx)
Run Code Online (Sandbox Code Playgroud)
似乎我有一个解决方案,但我的矢量有100万或更多的元素,我不仅担心编码风格(对我很重要)而且还担心效率(但我不知道如何在R中进行分析).有没有更合适的方法呢?使用指定的矢量快捷方式是一个好习惯吗?
[[更新]]我的applogies,可能我过于简化了问题,使其可重现.我想给列表的元素命名.我首先尝试了names(),但似乎我做错了什么并且没有用.所以我错误地认为names()不适用于列表.但他们确实如接受的答案所示
我希望我的sqlite3输出由制表符分隔.-column选项不适合我,因为带有空格和我的值的单独记录有空格但没有制表符.
如果我使用交互式sqlite3我可以使用.mode tab.单行命令有-separator选项,但我不知道如何在那里添加一个选项卡,它被解释为一个不是文字的选项卡(可能带有和ASCII代码?)
有什么建议?我发现的所有谷歌示例都是针对交互式sqlite3的.
目前我正在使用蛮力方法:
sqlite3 -header mydb "select * from table1" | tr \| '\t' > myoutput
Run Code Online (Sandbox Code Playgroud) 我无法在perl调试器中评估"现代perl"代码.在调试文件中的代码时,它可以正常工作,但不能从提示中调试.
最小的例子:
# activating 5-10 features with -E (it works)
$ perl -E 'say "x"'
x
Run Code Online (Sandbox Code Playgroud)
# calling the debugger with -E
# it works for infile code but for prompt line code...
$ perl -dEbug Loading DB routines from perl5db.pl version 1.33
DB say "x"
String found where operator expected at (eval 16)[/local-perl/lib/5.12.1/perl5db.pl:638] line 2, near "say "x""
at (eval 16)[/local-perl/lib/5.12.1/perl5db.pl:638] line 2
eval '($@, $!, $^E, $,, $/, $\\, $^W) = @saved;package main; $^D = $^D | $DB::db_stop;say … 九年前,当我开始使用Perl解析HTML和自由文本时,我阅读了Perl的经典Data Munging.有人知道大卫是否打算更新这本书,或者是否有类似的书籍或网页,其中解释了像XML-Twig,Regexp-Grammars等新的解析模块?
我假设在过去的九年中,一些模块仍然和它们一样好,有些模块是最新的,但有一些新的有趣方法,有些还有更好的替代方法.例如,Parse-RecDescent仍然是自由文本解析的唯一选择,还是Perl 6影响的Regexp-Grammars在许多场景中的替代?
我已经四年没有使用Perl进行有效的HTML,XML或自由文本数据挖掘了,所以我这个领域的工具包可能有点过时了.因此,对于与该领域当前CPAN模块最新的人员而言,HTML和DOM操作,链接提取/验证,Web测试(如Mechanize,XML操作和自由文本解析)的任何反馈都将受到欢迎.
我的工具包的一些新增内容:
还在我的工具箱中:
我是R中的新调试使用traceback()和option(error=recover)并debug(function)试图找到我在R包中出错的原因.
我正在调试一个带有大循环的函数,我想要"循环"循环到下一个块.我怎样才能做到这一点?我知道你可以放断点,但我不知道循环在哪里,下一步是哪一步.我在一个唯一的文本环境中,所以调试包的图形帮助可能没有帮助.
总结一下,如何在调试时退出循环,以及在调试时如何进入调试功能?
可能这已经回答了,我已经错过了.我已经看到了几个SO R调试问题,但没有人回答我所知道的这个部分.
我正在使用pdl2(PDLshell)作为我的默认Perl交互式shell(它加载所有漂亮的插件Devel::REPL).但我错过了x自卸车打印别名.p很适合piddles但它不适用于普通的数组引用或散列引用.我已经加载Data::Dumper但它缺乏一种简单的控制深度的方法,我喜欢你可以快速设置深度限制的方式x,例如x 2 $deep_datastruct复杂的数据结构.但随着Data::Dumper这个过程更加繁琐:
pdl> say $c
HASH(0x53b0b60)
pdl> p $c
HASH(0x12b14018)
pdl> use Data::Dumper
pdl> p Dumper $c
$VAR1 = {
'c' => {
'c' => 3,
'a' => 1,
'b' => {
'c' => '3',
'a' => '1',
'b' => '2'
}
},
'a' => 1,
'b' => 4
};
pdl> $Data::Dumper::Maxdepth = 1;
pdl> p Dumper $c
$VAR1 = { …Run Code Online (Sandbox Code Playgroud) 我是ESS的快乐用户,用于编码和调试R代码.我最近在几个for循环和ifs结构中发现了一个难以捉摸的bug.
有没有办法让ESS有选择地移动if/else结构或循环for for循环中的所有值?
R或ESS是否具有调试器模式,您可以跳过else子句,循环值并逐步进入,逐步执行,返回等?
[UPDATE]
感谢@jubba链接到另一个关于R语言调试工具的 SO问题.最后,这是我真正的问题.这个其他线程给出了我想知道的关于在当前R中进行调试的方式的事情的链接.
我想知道CPAN中统计模块的当前状态是什么,是否有人知道最近的任何评论或者可以评论它对这些模块的喜欢/不喜欢?
我使用了clasical:Statistics :: Descriptive,Statistics :: Distributions,以及Bundle :: Math :: Statistics中包含的其他一些内容
有些模块很长时间没有更新.我不知道这是因为它们坚如磐石还是被更好的模块所取代.
有人知道任何类似于旧版本的当前评论:
NB(对于那些建议使用R的人;-)):我的所有代码主要是在perl中,但我使用R进行统计和绘图.我通常使用perl准备数据帧并将per脚本中的R脚本作为模板编写并保存到文件中并从perl执行它们.但有时你有小数据集,其中效率不是问题(我使用perl而不是它;-))并且你想在你的perl生成的报告中添加一些统计数据和直方图.
当我不编辑它时,我喜欢将我的编码缓冲区设置为只读(如Vi模式编辑,只读).为此,我可以C-x C-q用来打开/关闭可写状态的emacs缓冲区.看起来这个写锁定功能有一些来自RCS的继承或类似的file-loking/revision-system方式,因此使用Version Control下的文件不起作用:
C-x C-q
File is under version-control; use C-x v v to check in/out
Run Code Online (Sandbox Code Playgroud)
我不想办理入住/退房我只想防止"猫打字".我可以写一个宏触发器find-file-read-only'/'find-file'并给它一些键绑定但我相信在emacs或.el中已经有了一个解决方案.有什么建议吗?
我知道你可以下载旧包并安装它们
R CMD INSTALL package-version.tar.gz
Run Code Online (Sandbox Code Playgroud)
我想知道您是否可以告诉install.packages()从存储库安装特定版本,从而使您不必首先找到tar.gz.我既没有在install.packages的帮助条目中找到此选项,也没有使用Google搜索.如果此选项不存在,是否有任何原因?我只能认为并非所有的repos都有所有版本,所以你不得不先找到版本并下载它.
SO中已经存在一个相同的问题,但问题和答案更多的是关于存储库问题,所以最后他们从未直接回答过这个问题.
perl ×4
r ×4
debugging ×2
emacs ×2
data-munging ×1
ess ×1
html-parsing ×1
pdl ×1
sqlite ×1
statistics ×1
text-parsing ×1
xml-parsing ×1