我有一个数字,例如1.128347132904321674821,我想在输出到屏幕(或写入文件)时只显示两位小数.怎么做到这一点?
x <- 1.128347132904321674821
Run Code Online (Sandbox Code Playgroud)
编辑:
指某东西的用途:
options(digits=2)
Run Code Online (Sandbox Code Playgroud)
已被建议作为可能的答案.有没有办法在脚本中指定一次性使用?当我将它添加到我的脚本时,它似乎没有做任何不同的事情,我对很多重新键入格式化每个数字感兴趣(我正在自动化一个非常大的报告).
-
答案:round(x,digits = 2)
假设你有一个像这样的data.frame:
x <- data.frame(v1=1:20,v2=1:20,v3=1:20,v4=letters[1:20])
Run Code Online (Sandbox Code Playgroud)
您如何仅选择x中的数字列?
是否有一种方法可以将列从data.frame中的一个位置移动到下一个位置 - 而无需键入全新的data.frame()
例如:
a <- b <- c <- d <- e <- f <- g <- 1:100
df <- data.frame(a,b,c,d,e,f,g)
Run Code Online (Sandbox Code Playgroud)
现在让我们说我想在"一个"面前"g"
我可以重新输入它
df <- data.frame(g,a,b,c,d,e,f)
Run Code Online (Sandbox Code Playgroud)
但是没有更快的方法吗?(想象一下1500+列)
我有一个data.frame,从最高到最低排序.例如:
x <- structure(list(variable = structure(c(10L, 6L, 3L, 4L, 2L, 8L,
9L, 5L, 1L, 7L), .Label = c("a", "b", "c", "d", "e", "f", "g",
"h", "i", "j"), class = c("ordered", "factor")), value = c(0.990683229813665,
0.975155279503106, 0.928571428571429, 0.807453416149068, 0.717391304347826,
0.388198757763975, 0.357142857142857, 0.201863354037267, 0.173913043478261,
0.0496894409937888)), .Names = c("variable", "value"), row.names = c(10L,
6L, 3L, 4L, 2L, 8L, 9L, 5L, 1L, 7L), class = "data.frame")
ggplot(x, aes(x=variable,y=value)) + geom_bar(stat="identity") +
scale_y_continuous("",label=scales::percent) + coord_flip()
Run Code Online (Sandbox Code Playgroud)
现在,数据很好并且排序,但是当我绘制时,它按因子排序.这很烦人,我该如何解决?
有没有快速初始化空数据框的方法?如果您知道尺寸是多少?例如:
假设我想要一个包含100行和10行的空白数据框:
x <- data.frame(1:100,2,3,4,5,6,7,8,9,10)
dim(x) ## that's right
Run Code Online (Sandbox Code Playgroud)
但是假设我想要300列的东西?如何快速初始化data.frame中的列?
x <- data.frame(1:100,2,3,4,5 ....) ## *cries*
Run Code Online (Sandbox Code Playgroud) 我已经使用R一年多一点了,这是一次成功的冒险.但是,我经常发现,由于不知道如何找到它或它的一个例子,我无法弄清楚.
堆栈溢出,
您是否可以推荐一种学习R的途径,以便为其提供一个工具集来解决统计问题?
在互联网上,r项目网站和邮件列表之间有丰富的知识,但它似乎"无处不在",而且当你真正寻找它时无处可去.
例如,当我第一次开始使用R时,我经历了"Intro to R".然后我读了语言定义(显然没有沉没).但是每当我在Stackoverflow上问一个问题时,我都会遇到一些新的badass函数,它可以解决我在短期内遇到的所有问题.我的问题是,您是如何知道这些功能首先存在的?如何找到它们?据推测,你读过一些东西或找到一些资源,使你的学习成为曲线的指数部分.它以前如何?
显然,R作为统计工具的功能很广泛.出于我自己的目的,我主要从事经济或财务数据.因此,考虑到这一点的答案将是最有帮助的.
在文档中,R建议放入原始数据文件(不是Rdata或Rda) inst/extdata/
来自第一段:http://cran.r-project.org/doc/manuals/R-exts.html#Data-in-packages
data子目录用于数据文件,要么通过延迟加载提供,要么使用data()加载.(选择是由DESCRIPTION文件中的'LazyData'字段进行的:默认情况下不会这样做.)它不应该用于包所需的其他数据文件,并且约定已经成长为使用目录inst /这些文件的extdata.
所以,我已将所有原始数据移动到此文件夹中,但是当我构建并重新加载包然后尝试使用(例如)访问函数中的数据时:
read.csv(file=paste(path.package("my_package"),"/inst/extdata/my_raw_data.csv",sep=""))
# .path.package is now path.package in R 3.0+
Run Code Online (Sandbox Code Playgroud)
我收到"无法打开文件"错误.
但是,它确实看起来/extdata
在包目录中调用了一个文件夹,其中包含文件(构建后和安装后).该/inst
文件夹发生了什么?
/ inst文件夹中的所有内容都会被推入/
包中吗?
我希望你不认为我是在寻求关系建议.
我不得不为调查受访者提供指定事件发生时间的能力.什么结果是一个可怕的凌乱的字符串,老实说,我不知道该怎么做.超越手工编码.
这是一个简短的样本,数以千计:
c("May2/ 12 noon", "9:45 am", "11:00 AM AST", "April 27 / 12:00 AST", "11:40 AM AST", "April 25 2011", "April 12th 2011 / 8:44", "April 12 2011 / 8:36am", "April 12 2011 / 8:30am", "April 12th 2011 / 8:18", "April 12 2011 / 8:12am", "April 11th 2011 / 5:57pm", "April 11th 2011 / 5:49pm", "April 11th 2011 / 5:42pm", "April 11th 2011 / 5:36pm", "April 11th 2011 / 5:27", "April 5 @ 11:26am", "8:50", "April 4th 12:45pm", …
我有很多生成绘图的函数,通常使用ggplot2.现在,我正在生成情节并测试基础数据.但我想知道是否有合理的方法来测试该图包含我期望的图层/选项或图形元素是否符合预期.
例如:
library(ggplot2)
library(scales) # for percent()
library(testthat)
df <- data.frame(
Response = LETTERS[1:5],
Proportion = c(0.1,0.2,0.1,0.2,0.4)
)
#' @export plot_fun
plot_fun <- function(df) {
p1 <- ggplot(df, aes(Response, Proportion)) +
geom_bar(stat='identity') +
scale_y_continuous(labels = percent)
return(p1)
}
test_that("Plot returns ggplot object",{
p <- plot_fun(df)
expect_is(p,"ggplot")
})
test_that("Plot uses correct data", {
p <- plot_fun(df)
expect_that(df, equals(p$data))
})
Run Code Online (Sandbox Code Playgroud)
这就是我被困住的地方
test_that("Plot layers match expectations",{
p <- plot_fun(df)
expect_that(...,...)
})
test_that("Scale is labelled percent",{
p <- plot_fun(df)
expect_that(...,...)
})
Run Code Online (Sandbox Code Playgroud)
也许有更直接的方法?
r ×10
ggplot2 ×2
ellipsis ×1
formatting ×1
package ×1
r-faq ×1
rounding ×1
testing ×1
testthat ×1
unit-testing ×1