我刚刚尝试保存一个简单的*.rtf文件,其中包含一些关于如何使用emacs的网站和技巧
这些默认编码系统试图在缓冲区`notes.rtf'中编码文本:( iso-latin-1-dos(315.8216)(338.8217)(1514.8220)(1525.8221))然而,每个他们遇到了无法编码的字符:iso-latin-1-dos无法编码:''""
......
等等,等等
那是什么?现在它要我选择一个编码系统
选择编码系统(默认为chinese-iso-8bit):
我甚至不知道编码系统是什么,我宁愿不必每次尝试保存文档时都选择一个...有什么方法可以设置一个可以处理我所有文件的编码系统所以我不用担心这个?
我在本网站的其他地方看到了另一个问题和回答(请参见此处),如果我键入以下内容似乎
(defun set-coding-system()(setq buffer-file-coding-system'utf-8-unix))(add-hook'find-file-hook'set-coding-system)
然后我可以让Emacs这样做,但我不确定......有人可以向我证实这一点吗?
我认为这是一个与data.table和:=函数的使用相关的非常简单的问题.我不认为我完全理解这种行为,:=而且经常遇到类似的问题.
这是一些示例数据
mat <- structure(list(
col1 = c(NA, 0, -0.015038, 0.003817, -0.011407),
col2 = c(0.003745, 0.007463, -0.007407, -0.003731, -0.007491)),
.Names = c("col1", "col2"),
row.names = c(NA, 10L),
class = c("data.table", "data.frame"))
Run Code Online (Sandbox Code Playgroud)
这使
> mat
col1 col2
1: NA 0.003745
2: 0.000000 0.007463
3: -0.015038 -0.007407
4: 0.003817 -0.003731
5: -0.011407 -0.007491
Run Code Online (Sandbox Code Playgroud)
我想创建一个名为col3的列,它给出col1和col2的总和.如果我使用
mat[,col3 := col1 + col2]
# col1 col2 col3
#1: NA 0.003745 NA
#2: 0.000000 0.007463 0.007463
#3: -0.015038 -0.007407 -0.022445
#4: 0.003817 -0.003731 …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,其第一列是Year-Quarter格式的日期,如下所示
1959-I
1959-II
1959-III
1959-IV
1960-I
1960-II
1960-III
1960-IV
Run Code Online (Sandbox Code Playgroud)
我已将数据集导入R,但我不知道如何Date使用该as.Date函数将其转换为格式,因为似乎没有季度的转换规范,我刚刚开始学习R.
我能想到的最好的就是
#extract the year
> dates <- substring(data$X,1,4)
> dates[1:8]
[1] "1959" "1959" "1959" "1959" "1960" "1960" "1960" "1960"
> dates <- as.numeric(dates)
#extract the quarter
> quarters <- substring(data$X,6)
> quarters[1:10]
[1] "I " "II " "III " "IV " "I " "II " "III " "IV "
Run Code Online (Sandbox Code Playgroud)
但这不可能是这样做的最佳方式,它仍然留给我如何处理我的系列的问题quarters.更糟糕的是,每个角色的末尾都有一个空白字符我不知道如何处理,因为四分之一字符串有3种不同的"长度".
当然,另一种选择是制作我自己的宿舍系列,例如
quarters <- rep(c(1,2,3,4),dates[length(dates)]-dates[1])
Run Code Online (Sandbox Code Playgroud)
(我为自己撰写最后一行感到自豪!).
所以我的问题是:是否有一种内置的方式来导入我在R中的格式的季度数据,如果没有,还有其他任何格式(仍然用于季度数据)?关于最佳进展方式的任何建议?
我希望能够对我的.emacs文件进行更改,而无需重新加载Emacs.
我发现了三个问题,它们回答了我的问题(你可以在这里,这里和这里找到它们),但问题是我刚刚做出的改变是切换,并作为对两个答案的评论(a1,a2)对于那些问题的解释,那里给出的解决方案(例如Mx reload-file或Mx eval-buffer)不适用于切换.
我想有一种方法可以使用命令再次切换变量,但如果有办法重新加载整个.emacs并重新评估所有切换而不必指定它们,我宁愿.
在任何情况下,如果有人告诉我如何切换变量的值,我也会感激,如果我只是改变了一个切换,我可以用命令来做,而不是为此重新启动Emacs(我是Emacs的新手) ).我不知道这些信息是多么有用,但我应用了变化如下(这是我从拿到这个回答另一个问题):
(setq skeleton-pair t)
(setq skeleton-pair-on-word t)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "<") 'skeleton-pair-insert-maybe)
Run Code Online (Sandbox Code Playgroud)
编辑:我在.emacs中包含了上面的内容并重新加载了Emacs,以便更改生效.然后我评论了所有这些并尝试了Mx加载文件.这不起作用.下面的建议(如果我使用它来首次评估切换,但是当我想要撤消它时,PP的 Cx Ce可以工作).如果这样的事情存在的话,我想要评估评论的东西......
谢谢 :)
我甚至不确定这是一个以前的命令或一个未完成的命令或其他什么,但我知道我真的不喜欢它.
我的问题是一些命令(或消息,或其他)被卡在迷你缓冲区中,因此当我键入一个新命令时,它会很快出现,然后迷你缓冲区又回到了顽固的命令.似乎选择了一些命令,并且在使用大量命令后,其他东西会被卡在那里,但是总会有一些东西显示出我不想看到的东西.我尝试多次输入Cg以查看它是否会退出,但这不起作用.
这是我现在拥有的图片:

我做什么都没关系,那一点
标签:hl-line
不会离开.键入新命令时它会暂时离开,但它会返回.我不喜欢它,它令人困惑,我更愿意看到最后使用过的命令.
我确实检查了迷你缓冲区的自定义选项(它的底部部分可以在我的图片中看到),但我发现似乎没有什么是我想要的.
有任何想法吗?
我被要求绘制一个像这样的图表

使用Latex(更确切地说,tikz和/或pgf).如果我有数据,这不会是一个问题,但我没有.我所拥有的只是可以显示图表的网站,但我不知道如何从那里获取数据.
我今天花了一天时间试图获取这些数据,包括写入Google并使用一种跟踪线条并推断图形点的软件,例如Datathief和DigitizeIt,但我没有成功.我认为后者不起作用,因为图中的线条太薄而且有多个蓝色阴影.当然,我尝试使用Paint和Gimp来提高图像质量,但我仍然无法使其工作.
我也尝试使用eps2pgf,这是一个将eps数字转换为pgf代码的Java脚本,但即使这对我使用Image Capture(mac)和Print Screen(Windows)保存的图表也不起作用,说实话,这将是我的最后一次选项,因为它是一种"暴力方法",吐出一个你无法真正改进的丑陋代码.
毕竟我决定开始学习Python,因为我的主管,那个让我用tikz绘制这张图片的人,说有一个Python代码可以从这样的网站获取数据.现在我甚至不确定Python是否会完成这项工作(虽然我很高兴有借口学习它)当然,学习一门新语言并做类似的事情需要时间,所以我想知道是否真的有从该网站获取数据的方法,最好使用Python,但如果没有,则使用任何其他方法.
我认为我的问题非常愚蠢,但在这里:
我正在使用Aquamacs,我想安装WhizzyTeX模式.WhizzyTeX的网站称"它专为Unix平台而设计".
我读过Mac OS X是unix认证的,但这是否意味着我可以在我的Mac上安装WhizzyTeX?如果是,我可以在Aquamacs上安装和使用它,还是必须使用从终端运行的Emacs?
PS:我不知道这个问题是应该在这里发布还是在SuperUser上发布,但是由于Emacs用户似乎更频繁地在这里闲逛,这就是我选择的地方.
编辑:有一些网站说我可以在mac os x上使用WhizzyTeX和Carbon Emacs,但有些地方说我不能(参见例如这个 pdf文档,第27页,其中说"*whizzytex:http://cristal.inria乳胶中的.fr/whizzytex / mode与ocaml linux for linux,也应该在cygwin中工作,doe不能在osx上工作").所以我真的很困惑......
今天我终于决定开始攀登R陡峭的学习曲线.我花了几个小时,我设法导入我的数据集,并做了一些其他基本的事情,但我遇到了数据类型的问题:包含小数的列导入为整数,并且转换为double会更改值.
在尝试将一个小的csv文件放在这里作为一个例子我发现问题只发生在数据文件太大时(我的原始文件是1048418×12矩阵,但即使只有"仅"5000行我也有同样的问题.当我只有100行,1000行甚至2000行时,列被正确导入为double).
这是一个较小的数据集(仍然是500kb,但同样,如果数据集很小,则不会复制问题).代码是
> ex <- read.csv("exampleshort.csv",header=TRUE)
> typeof(ex$RET)
[1] "integer"
Run Code Online (Sandbox Code Playgroud)
为什么当文件很大时,返回列被导入为整数,当它显然是double类型时?
最糟糕的是,如果我尝试将其转换为double,则值会发生变化
> exdouble <- as.double(ex$RET)
> typeof(exdouble)
[1] "double"
> ex$RET[1:5]
[1] 0.005587 -0.005556 -0.005587 0.005618 -0.001862
2077 Levels: -0.000413 -0.000532 -0.001082 -0.001199 -0.0012 -0.001285 -0.001337 -0.001351 -0.001357 -0.001481 -0.001486 -0.001488 ... 0.309524
> exdouble[1:5]
[1] 1305 321 322 1307 41
Run Code Online (Sandbox Code Playgroud)
这不是导入错误的唯一列,但我想如果我找到一个列的解决方案,我应该能够将其他列排序.以下是一些更多信息:
> sapply(ex,class)
PERMNO DATE COMNAM SICCD PRC RET RETX SHROUT VWRETD VWRETX EWRETD EWRETX
"integer" "integer" "factor" "integer" "factor" "factor" "factor" …Run Code Online (Sandbox Code Playgroud) 我有一个data.table这样的对象
library(data.table)
a <- structure(list(PERMNO = c(10006L, 10006L, 10015L, 10015L, 20000L, 20000L),
SHROUT = c(1427L, 1427L, 1000L, 1001L, 200L, 200L),
PRC = c(6.5, 6.125, 0.75, 0.5, 3, 4),
RET = c(0.005, -0.005, -0.001, 0.05, -0.002, 0.0031)),
.Names = c("PERMNO", "SHROUT", "PRC", "RET"),
class = c("data.table", "data.frame"), row.names = c(NA, -6L))
setkey(a,PERMNO)
Run Code Online (Sandbox Code Playgroud)
我需要执行一些计算PERMNO,但在这个示例中,我们假设它们只有2:
mktcap <- a[ , tail(SHROUT,n=1)*tail(PRC,n=1),by=PERMNO]
sqret <- a[, sum(RET^2),by=PERMNO]
Run Code Online (Sandbox Code Playgroud)
哪个产生
> mktcap
PERMNO V1
[1,] 10006 8740.375
[2,] 10015 500.500
[3,] 20000 800.000
> …Run Code Online (Sandbox Code Playgroud) 我想在我的数据框的PERMNO列中对每个公司编号执行计算,其摘要可以在这里看到:
> summary(companydataRETS)
PERMNO RET
Min. :10000 Min. :-0.971698
1st Qu.:32716 1st Qu.:-0.011905
Median :61735 Median : 0.000000
Mean :56788 Mean : 0.000799
3rd Qu.:80280 3rd Qu.: 0.010989
Max. :93436 Max. :19.000000
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的解决方案是创建一个包含所有公司编号的变量
compns <- companydataRETS[!duplicated(companydataRETS[,"PERMNO"]),"PERMNO"]
Run Code Online (Sandbox Code Playgroud)
然后使用并行计算的foreach循环调用我的函数get.rho(),然后执行所需的计算
rhos <- foreach (i=1:length(compns), .combine=rbind) %dopar%
get.rho(subset(companydataRETS[,"RET"],companydataRETS$PERMNO == compns[i]))
Run Code Online (Sandbox Code Playgroud)
我测试了它的一部分数据,一切正常.问题是我有7200万观察,即使在电脑一夜之间工作,它仍然没有完成.
我是R的新手,所以我想我的代码结构可以改进,并且有更好的(更快,更少计算密集)的方式来执行同样的任务(也许使用apply或with,我不明白) .有什么建议?