小编Wal*_*cio的帖子

我如何用R rank()函数创建一个新的tie.method?

我正在尝试按人口和日期排序这个数据框,所以我正在使用order()rank()函数:

> df <- data.frame(idgeoville = c(5, 8, 4, 3, 4, 5, 8, 8),
                   date       = c(rep(1950, 4), rep(2000, 4)),
                   population = c(500, 450, 350, 350, 650, 500, 500, 450))
> df
   idgeoville date    population
1  5          1950     500
2  8          1950     450
3  4          1950     350
4  3          1950     350
5  4          2000     650
6  5          2000     500
7  8          2000     500
8  8          2000     450
Run Code Online (Sandbox Code Playgroud)

随着ties.method = "first"我没有问题,最后我生产这种数据帧:

   idgeoville date    population  rank …
Run Code Online (Sandbox Code Playgroud)

sorting select r ranking dataframe

7
推荐指数
2
解决办法
3932
查看次数

如何在Calc(或Excel)上定义动态范围?

假设我有一个Libreoffice.org Calc(也许这适用于MS Excel)对象定义为范围$Sheet1.$A$1:$A$4.

我还声明了一个值为1的常量.对于这个模型目的,让我们调用它startingLine.

两个对象都在"定义名称"对话框中正确定义(快捷键:Ctrl + F3).

我想要做的是将定义范围的转换为变量.在我看来,它所需要的只是将它定义为:$Sheet1.$A$startingLine:$A$4,但这不起作用.: - /

我正在寻找一个简单的电子表格解决方案,遗憾的是宏这次不会为我做这件事.但是,使用R1C1参考的解决方案就足够了.:)

任何帮助将大大赞赏!

excel range libreoffice-calc

7
推荐指数
1
解决办法
2万
查看次数

将数字转换为字母

我有以下向量:

x <- c(11, 12, 21, 22)
Run Code Online (Sandbox Code Playgroud)

我想将它转换为相应的字母,即我想得到这个结果:

AA AB BA BB
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我打赌这是一个简单的答案,它通过使用保留的LETTERS矢量,但我无法找到解决方案.这是迄今为止我设法提出的最好的(你可能想把孩子带出房间):

> paste0(gsub(1, LETTERS[1], substr(x, 1, 1)),
         gsub(2, LETTERS[2], substr(x, 1, 1)))
[1] "A1" "A1" "2B" "2B"
Run Code Online (Sandbox Code Playgroud)

string replace r gsub

7
推荐指数
3
解决办法
1万
查看次数

删除 Excel 单元格中的重复项

假设我在一个 Excel 单元格中有以下文本字符串:

John John John Mary Mary
Run Code Online (Sandbox Code Playgroud)

我想在另一个单元格上创建一个公式(所以没有菜单功能或 VBA,请)

John Mary
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

到目前为止我尝试过的是在互联网上搜索有关该问题的内容,我所能找到的只是涉及 Excel 的内置重复删除或涉及countif 和替换"". 我还查看了 Excel 函数列表,尤其是“文本”类别中的函数列表,但找不到任何可以在一个单元格上完成的有趣内容。

excel cell duplicates excel-formula duplicate-removal

7
推荐指数
2
解决办法
4万
查看次数

如何复制在CRAN上执行的包检查时间?

我一直在努力缩短提交给 CRAN 的包裹的检查时间。在我的本地计算机上,检查时间介于 1 分钟(i7 CPU)和 2 分钟(i5 CPU)之间。然而,CRAN 评审员不断指出检查时间超过 10 分钟。我能找到重现这么长的检查时间的唯一方法是将我的包上传到http://win-builder.r-project.org/,在那里确实需要超过 600 秒的时间来检查。

我希望我可以在本地重现此检查时间,这样我就不会依赖远程解决方案。我可以看到 Win 构建器和我的本地计算机之间的唯一区别是操作系统(Win 与 Linux)以及 Win 构建器似乎如何进行多体系结构检查(i386 和 x64)。

我不知道如何在本地重现这个。我尝试过R CMD check使用看似相关的开关,例如--multiarch--force-multiarch,但它似乎没有做任何不同的事情。我想我必须安装一些额外的软件包,比如r-cran-i386或者其他什么,但是我在我的存储库中找不到任何类似的东西(“R”可以是搜索表达式的 PITA)以及 README 文件上的说明,例如https://cran.r-project.org/bin/linux/ubuntu/并没有让我走得足够远。

我已经在使用--as-cran,并且知道这样的解决方案,尽管我认为在包含 32 位操作系统的单独虚拟机上安装 R i386 违背了我想要实现的目的。

r package cran

6
推荐指数
0
解决办法
207
查看次数

R舍入解释

任何人都可以解释为什么这会给出不同的输出?

round(1.49999999999999)
1


round(1.4999999999999999)
2
Run Code Online (Sandbox Code Playgroud)

我已经阅读了圆形文档,但它没有提到它的任何内容.我知道R代表二进制形式的数字,但为什么增加两个额外的9会改变结果呢?

谢谢.

r

5
推荐指数
1
解决办法
485
查看次数

将数字向量作为字符导出为CSV

让以下向量:

x <- c(123456789123456789, 987654321987654321)
y <- as.character(x)
Run Code Online (Sandbox Code Playgroud)

我正在尝试导出y到csv文件以便以后转换为XLSX(不要问,请求客户端),如下所示:

 write.csv(y, file = 'y.csv', row.names = F)
Run Code Online (Sandbox Code Playgroud)

如果我y.csv在纯文字处理器中打开,我可以看到它在元素周围正确插入引号,但是当我在Excel中打开它时,程序坚持将列转换为数字并以科学格式显示内容.这需要重新格式化列的额外步骤,当使用大量文件时,这可能是一个真正的浪费时间.

如何在R中格式化20位数的字符向量,以便Excel不以科学计数法显示它们?

csv excel export r export-to-csv

5
推荐指数
1
解决办法
7621
查看次数

具有日期对象的Knitr行为

假设我在knitr chunk中有以下对象:

df <- as.Date(c("2013-10-01", "2013-10-02", "2013-10-03"))
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试运行时:

`r min(df)`  # that would be \Sexpr{min(df)} for a TeX file
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in Math.Date(x) : abs not defined for "Date" objects
Calls: knit ... .inline.hook -> format_sci -> vapply -> FUN -> Math.Date

Execution halted

knitr terminated with status 1
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?我该如何解决这个问题?

r date knitr

5
推荐指数
1
解决办法
528
查看次数

在R中提取名字

假设我的数据框中有一个人名的向量:

names <- c("Bernice Ingram", "Dianna Dean", "Philip Williamson", "Laurie Abbott",
           "Rochelle Price", "Arturo Fisher", "Enrique Newton", "Sarah Mann",
           "Darryl Graham", "Arthur Hoffman")
Run Code Online (Sandbox Code Playgroud)

我想创建一个带有名字的向量.我所知道的只是他们在上面的向量中首先出现,然后是一个空格.换句话说,这就是我正在寻找的:

"Bernice" "Dianna"  "Philip" "Laurie" "Rochelle"
"Arturo"  "Enrique" "Sarah"  "Darryl" "Arthur"
Run Code Online (Sandbox Code Playgroud)

我在这里发现了一个类似的问题,但答案(特别是这一个)并没有多大帮助.到目前为止,我已经尝试了一些grep家庭功能的变体,而我最接近的有用的东西是通过运行strsplit(names, " ")分隔名字然后strsplit(names, " ")[[1]][1]获得第一个人的第一个名字.我一直试图调整这最后一个命令给我一个完整的名字矢量,但无济于事.

regex r

5
推荐指数
2
解决办法
2623
查看次数

安装软件包“ rjags”的退出状态为非零

SO:Linux Ubuntu 14.04 LTS R:R版本3.2.1(2015-06-18)-“世界著名的宇航员”版权所有(C)2015统计计算平台的R基础:i686-pc-linux-gnu(32位)

当我尝试安装软件包时rjags,出现以下致命错误:

install.packages("rjags")
Installing package into ‘/home/marco/.rkward/library’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
trying URL 'http://mirrors.softliste.de/cran/src/contrib/rjags_3-15.tar.gz'
Content type 'application/x-gzip' length 66879 bytes (65 KB)
==================================================
downloaded 65 KB

* installing *source* package ‘rjags’ ...
** package ‘rjags’ successfully unpacked and MD5 sums checked
checking for prefix by checking for jags... no
configure: error: "Location of JAGS headers not defined. Use configure arg '--with-jags-include' or …
Run Code Online (Sandbox Code Playgroud)

r jags

5
推荐指数
1
解决办法
2913
查看次数