小编And*_*rie的帖子

如何保存未被rm删除的变量(list = ls())

我想在R中保存一个不会被删除的变量 rm(list=ls())

我认为这是可能的,例如安装的功能和包中的数据不会被删除.

编辑:一种可能是为此R会话设置一个env变量.我试过Sys.setenv(ENV_VAR = 1)Sys.getenv(ENV_VAR)返回错误.

(我在Windows 32bits,R 2.12.1)

r environment-variables

4
推荐指数
1
解决办法
657
查看次数

如何使用替换功能创建自定义分配?

我定义了一个名为的函数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<-

r

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

在R中对多个变量进行分组

我是一个强大的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)

excel pivot-table r plyr

4
推荐指数
1
解决办法
1876
查看次数

使用总行创建表格摘要

是否有优雅的单线(使用任何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)

aggregate r

4
推荐指数
1
解决办法
769
查看次数

添加变量,同时使用变换功能忽略NA

我有一个包含大量变量的数据框.我通过将一些旧变量加在一起来创建新变量.我用来做的代码是:

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

4
推荐指数
1
解决办法
4892
查看次数

函数始终返回数字(0)

我对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)

r

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

ggplot2:在不同的方面使用不同的颜色

我有一个似乎是一个非常基本的问题,但我无法解决它,因为我几乎没有使用过 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)

多谢!

r ggplot2

4
推荐指数
1
解决办法
4562
查看次数

总结dplyr中的值 - 崩溃RStudio

可以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)

r rstudio dplyr

4
推荐指数
1
解决办法
7679
查看次数

带有注释的geom_bar,其中的条形与x轴对齐

我正在尝试使用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值.

r ggplot2

4
推荐指数
1
解决办法
1256
查看次数

从 Github 安装 R 包

我正在尝试从 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)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的会议:

\n\n
R 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)\n
Run Code Online (Sandbox Code Playgroud)\n

r github

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