我想在R中保存一个不会被删除的变量 rm(list=ls())
我认为这是可能的,例如安装的功能和包中的数据不会被删除.
编辑:一种可能是为此R会话设置一个env变量.我试过Sys.setenv(ENV_VAR = 1)但Sys.getenv(ENV_VAR)返回错误.
(我在Windows 32bits,R 2.12.1)
我定义了一个名为的函数once如下:
once <- function(x, value) {
xname <- deparse(substitute(x))
if(!exists(xname)) {
assign(xname, value, env=parent.frame())
}
invisible()
}
Run Code Online (Sandbox Code Playgroud)
这个想法是value评估时间很长,我只想x在第一次运行脚本时将其分配.
> z
Error: object 'z' not found
> once(z, 3)
> z
[1] 3
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢使用once(x) <- value而不是once(x, value),但是如果我编写一个函数once<-,那么变量就不存在了:
> once(z) <- 3
Error in once(z) <- 3 : object 'z' not found
Run Code Online (Sandbox Code Playgroud)
有没有人有办法解决这个问题?
ps:是否有一个名称来描述类似once<-或一般的功能f<-?
我是一个强大的excel数据透视表用户,正在强迫自己学习R.我确切知道如何在excel中进行这种分析,但无法找出在R中编码的正确方法.
我试图通过2个不同的变量对用户数据进行分组,同时将变量分组到范围(或容器)中,然后汇总其他变量.
以下是数据的样子:
userid visits posts revenue
1 25 0 25
2 2 2 0
3 86 7 8
4 128 24 94
5 30 5 18
… … … …
280000 80 10 100
280001 42 4 25
280002 31 8 17
Run Code Online (Sandbox Code Playgroud)
这是我试图让输出看起来像:
VisitRange PostRange # of Users Total Revenue Average Revenue
0 0 X Y Z
1-10 0 X Y Z
11-20 0 X Y Z
21-30 0 X Y Z
31-40 0 X Y Z
41-50 0 …Run Code Online (Sandbox Code Playgroud) 是否有优雅的单线(使用任何R包)来完成以下任务?
tab <- aggregate(. ~ Species, dat=iris, mean)
total <- data.frame(Species='Overall', t(colMeans(iris[,-5])))
rbind(tab, total)
Run Code Online (Sandbox Code Playgroud) 我有一个包含大量变量的数据框.我通过将一些旧变量加在一起来创建新变量.我用来做的代码是:
name_of_data_frame<- transform(name_of_data_frame, new_variable=var1+var2 +....)
Run Code Online (Sandbox Code Playgroud)
当变换在其中一个观察中遇到NA时,它会在新变量中返回"NA",即使它添加的某些其他变量不是NA.
例如,如果var1= 4,var2=3,var3=NA,然后用transform,如果我这样做var1+var2+var3会发出NA,而我想它给我7.
我不想NA在数据框中将s 重新编码为零,因为我可能需要NA稍后再参考s,所以不要将NAs与真实的观察混淆0.
任何有关如何以NA上述方式使用变换函数来处理R处理的帮助都会很棒(或者如果有其他函数可供使用,那也会很棒).
请注意,我并不只是总结彼此相邻的变量,我也经常划分变量,乘法,减法等.
我对R很新,所以如果这是一个简单易懂的问题我会道歉.我尝试了谷歌搜索,但找不到似乎完全相关的例子(大多数例子只有1个函数参数).
我有一个简单的函数,表示2维的基本线性模型:
y <- function(x, w) {
temp <- w[0] + x*w[1]
return(temp)
}
Run Code Online (Sandbox Code Playgroud)
当我以我期望的方式使用它时,我得到:
> y(1,c(-0.3,0.5))
numeric(0)
Run Code Online (Sandbox Code Playgroud)
当我尝试不正确的输入时,同样的事情!
> y(1,2)
numeric(0)
Run Code Online (Sandbox Code Playgroud)
最终,我的目标是能够有一个向量X,可以作为参数传入.例如:
> y(c(1,2,3,4),c(1,2))
Run Code Online (Sandbox Code Playgroud) 我有一个似乎是一个非常基本的问题,但我无法解决它,因为我几乎没有使用过 ggplots2 ...我只想左边的图使用变量 color1 中的颜色,右边的图使用变量 color1 中的颜色变量 color2 中的颜色。这是一个 MWE:
library(reshape2)
library(ggplot2)
a.df <- data.frame(
id=c("a","b","c","d","e","f","g","h"),
var1=c(1,2,3,4,5,6,7,8), var2=c(21,22,23,24,25,26,27,28),
var3=c(56,57,58,59,60,61,62,63),
color1=c(1,2,"NONE","NONE",1,2,2,1),
color2=c(1,"NONE",1,1,2,2,"NONE",2)
)
a.dfm <- melt(a.df, measure.vars=c("var2","var3"))
ggplot(a.dfm, aes(x=value, y=var1, color=color1)) +
geom_point(shape=1) +
facet_grid(. ~ variable)
Run Code Online (Sandbox Code Playgroud)
多谢!
可以dplyr执行链式summarise操作data.frame吗?
我的data.frame有以下结构:
data_df = tbl_df(data)
data_df %.%
group_by(col_1) %.%
summarise(number_of= length(col_2)) %.%
summarise(sum_of = sum(col_3))
Run Code Online (Sandbox Code Playgroud)
这会导致RStudio遇到fatal error - R Session Aborted消息
通常,plyr我会summarise毫无问题地包含这些功能.
UPDATE
数据在这里.
代码是:
library(dplyr)
orth <- read.csv('orth0106.csv')
orth_df = tbl_df(orth)
orth_df %.%
group_by(Hospital) %.%
summarise(Procs = length(Procedure)) %.%
summarise(SSIs = sum(SSI))
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用geom_bar创建结果直方图,并希望将结果计数作为文本包含在与x轴对齐的每个条形中.
这是我到目前为止:
df <- data.frame(results = rnorm(100000))
require(ggplot2)
p = ggplot(df, aes(x = results))
p = p + geom_bar(binwidth = 0.5, colour = "black", fill = "white", drop = T)
p = p + scale_y_log10()
p = p + geom_hline(aes(yintercept = 1))
p = p + stat_bin(geom = "text", binwidth = 0.5,
aes(x = results, angle = 90, y = 2,
label = gsub(" ", "",format(..count.., big.mark = ",",
scientific=F))))
p
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,文本未与x轴对齐,因为我的真实数据要大得多(大约数百万),这个问题会稍微恶化:
目前的数字:

想要的人物:

注意:通过在stat_bin中设置y = 3,我会收到一条警告,指出"将变量映射到y并使用stat ="bin"等等......"但是我不知道如何强制将文本的位置放在图的底部没有定义ay值.
我正在尝试从 Github 安装一个包,但它总是向我显示相同的错误:
\n\n> install_github("jfpalomeque/Momocs")\nInstalling github repo Momocs/master from jfpalomeque\nDownloading master.zip from https://github.com/jfpalomeque/Momocs/archive/master.zip\nInstalling package from C:\\DOCUME~1\\Ged\\CONFIG~1\\Temp\\RtmpE15W58/master.zip\nInstalling Momocs\n"C:/ARCHIV~1/R/R-31~1.0/bin/i386/R" --vanilla CMD INSTALL "C:\\Documents and \\\n Settings\\Ged\\Configuraci\xc3\xb3n \\\n local\\Temp\\RtmpE15W58\\devtools5a86536733\\Momocs-master" \\\n --library="C:/Archivos de programa/R/R-3.1.0/library" --install-tests \n\nWarning: invalid package \'C:\\Documents and Settings\\Ged\\Configuraci\xc3\xb3n local\\Temp\\RtmpE15W58\\devtools5a86536733\\Momocs-master\'\nError: ERROR: no packages specified\nError: Command failed (1)\nRun Code Online (Sandbox Code Playgroud)\n\n我的会议:
\n\nR version 3.1.0 (2014-04-10) -- "Spring Dance"\nCopyright (C) 2014 The R Foundation for Statistical Computing\nPlatform: i386-w64-mingw32/i386 (32-bit)\nRun Code Online (Sandbox Code Playgroud)\n