小编A5C*_*2T1的帖子

替换R中的文本时出错

我用sub替换R中的一个文本.

 x<-"My name is ${name}"
 sub("${name}","Tiger",x)
Run Code Online (Sandbox Code Playgroud)

错误信息:

Error in sub("${name}", "Tiger", x) : 
  invalid regular expression '${name}', reason 'Invalid contents of {}'
Run Code Online (Sandbox Code Playgroud)

输入文本有{},如何修复此错误?

regex replace runtime-error r

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

按总和和另一列按平均值汇总列

我想在日期框架上使用聚合函数,但是对一列进行求和并取另一列的平均值.

这是一个示例数据框

Manager   Category  Amount  SqFt
Joe           Rent     150   500
Alice         Rent     250   700
Joe      Utilities      50   500
Alice    Utilities      75   700
Run Code Online (Sandbox Code Playgroud)

我不能做下面这样的事情.有一个简单的方法吗?

Avg_CPSF=aggregate(cbind(Amount,SqFt)~Manager,data=aaa,FUN=c(sum,mean)
Run Code Online (Sandbox Code Playgroud)

最终我需要

Manager  Amount   SqFT
Joe       200      500
Alice     325      700
Run Code Online (Sandbox Code Playgroud)

这样我就可以通过金额/平方英尺来计算每平方英尺的成本

aggregate r

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

R - 从数据框创建散点图

我有一个all看起来像这样的数据框:

http://pastebin.com/Xc1HEYyH

现在我想创建一个散点图,其中x轴的列标题和相应的值作为数据点.例如:

7|                 x  
6|          x      x  
5|  x       x      x     x    
4|  x       x            x 
3|                             x      x  
2|                             x      x
1|
 ---------------------------------------
    STM    STM    STM   PIC   PIC    PIC
   cold   normal  hot  cold  normal  hot
Run Code Online (Sandbox Code Playgroud)

这应该很容易,但我无法弄清楚如何.

问候

plot r scatter-plot ggplot2 lattice

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

如何按日期对data.frame进行分组?

我有一个.csv文件,格式如下:

Date       ,     Time  , Value
1899-01-01 ,  4:00:00  ,    1
1899-01-01 ,  4:01:00  ,    2
1899-01-01 ,  4:02:00  ,    3
1899-01-01 ,  4:03:00  ,    4
1899-01-01 ,  4:04:00  ,    5
1900-08-22 , 22:00:00  ,  101
1900-08-22 , 22:01:00  ,  102
2013-08-29 ,  4:00:00  , 1000
2013-02-29 ,  4:02:00  , 1001
2013-02-29 ,  4:03:00  , 1002
Run Code Online (Sandbox Code Playgroud)

是否有可能group by date产生data.table的格式如下:

Date      , Vector(variable length)
1899-02-28, c(1,2,3,4,5)
1900-08-22, c(101,102)
1900-08-22, c(1000,1001,1002)
Run Code Online (Sandbox Code Playgroud)

这是我迄今为止最好的(经过一天的尝试):

raw <- read.csv(pathName, header = TRUE, …
Run Code Online (Sandbox Code Playgroud)

aggregate r

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

展平/非规范化R聚合函数的结果

我是R的新手,我正在尝试使用aggregate数据框,每个主题和我的数据集中的每个指标执行一些时间序列整形.这很好用,但我发现结果不是一种非常容易使用的格式.我希望能够将结果转换回与原始数据帧相同的格式.

以虹膜数据集为例:

# Split into two data frames, one for metrics, the other for grouping
iris_species = subset(iris, select=Species)
iris_metrics = subset(iris, select=-Species)
# Compute diff for each metric with respect to its species
iris_diff = aggregate(iris_metrics, iris_species, diff)
Run Code Online (Sandbox Code Playgroud)

我只是diff用来说明我有一个塑造时间序列的函数,所以我得到一个可能不同长度的时间序列作为结果,绝对不是一个单一的聚合值(例如平均值).

我想转换结果,这似乎是一个矩阵,它具有列表值单元格到原始的"平面"数据帧.

我主要是好奇如何从结果管理这个aggregate,但我很确定用在千方百计解决方案plyrreshape.

aggregate r plyr reshape

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

如何获取2的数据帧的所有列的组合?

假设我有这个数据框:

matrix(c(2,4,3,1,5,7,1,2,3,5,8,2,4,5,1,1,3,6,1,3,4,5,6,1),nrow=6,ncol=4,byrow = TRUE)->X
as.data.frame(X)->X.df

  V1 V2 V3 V4
1  2  4  3  1
2  5  7  1  2
3  3  5  8  2
4  4  5  1  1
5  3  6  1  3
6  4  5  6  1
Run Code Online (Sandbox Code Playgroud)

然后我想获得一组数据框的列表,其中包含2的所有列的组合,没有重复,并且避免任何列本身.这意味着,具有以下标题的数据框列表:

V1,V2
V1,V3
V1,V4
V2,V3
V2,V4
V3,V4
Run Code Online (Sandbox Code Playgroud)

知道如何做到这一点?

combinations r dataframe

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

理解R的工作空间的元素清除

我试图找到一种方法来使用列表清除R中的工作区.

根据文档,我可以简单地创建一个包含所有工作空间对象的向量:WS=c(ls()).但是,当我尝试使用rm(c(ls())或删除元素时,没有任何反应rm(WS).

我知道我可以使用该命令rm(list=ls()).我只想弄清楚R是如何工作的.我在思考如何在rm()带有对象列表的向量上应用函数时犯了错误?


具体来说,我正在尝试创建一个类似于clcMATLAB中的函数的函数,但是我无法使它工作.这是我写的功能:

clc <- function() { rm(list = ls()) }
Run Code Online (Sandbox Code Playgroud)

workspace r

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

R Plot :带有 legend() 的图例框的大小,与 RStudio 的差异

当我需要在 R 中编写一些代码时,我通常会使用 R Studio。但是一旦我想用图例绘制绘图,我就会切换到 R Gui,因为 RStudio 的图例框是不同的,对我来说不愉快。

\n\n

让我用一个例子来解释一下:

\n\n
sigma <- (1:7000)/10000\n\nratioMSY <- 1 - 5.26 * sigma^2\nplot(sigma, ratioMSY, type="l", ylab="MSY(sigma^2)/MSY(0)", ylim=c(0,1), \n lty=2, cex.lab=1.5, bty="n", cex.axis=1.5, lwd=3)\n\npar(new=T)\nratioMSY <- 1 - 2.78 * sigma^2\nplot(sigma, ratioMSY, type="l", ylab="MSY(sigma^2)/MSY(0)", ylim=c(0,1), lty=1, \n cex.lab=1.5, bty="n", cex.axis=1.5, lwd=3)\n\npar(new=T)\nratioMSY <- 1 - 1.96 * sigma^2\nplot(sigma, ratioMSY, type="l", ylab="MSY(sigma^2)/MSY(0)", ylim=c(0,1), lty=3, \n cex.lab=1.5, bty="n", cex.axis=1.5, lwd=3)\n\nlegend(0,0.4,c("r = 0.1","r = 0.2","r = 0.3"), lty=c(2,1,3), cex=1.5)\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我用 RStudio 和 RGui 来做。

\n\n

使用 RStudio: …

r

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

R中的圆形移位阵列距离n

说我有

a <- c(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

并且我想通过将它在"左"方向上移动距离1来从a导出b

b
# [1] 2 3 1
Run Code Online (Sandbox Code Playgroud)

通过推导我的意思是你:

  1. 将"a"传递给吐出"b"的函数
  2. 你使用某种索引短路就可以做到这一点.
  3. b <- c(2, 3, 1)例如,不是我正在寻找的解决方案

什么是优雅/有效的方法呢?

r

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

计算变量在R中连续重复的次数

考虑以下MWE:

df <- data.frame(Day=1:10, Value = c("Yes","No","Yes", "Yes", "Yes", 
                                     "No", "No", "Yes","Yes",  "No"))

 Day Value
   1   Yes
   2    No
   3   Yes
   4   Yes
   5   Yes
   6    No
   7    No
   8   Yes    
   9   Yes
  10    No
Run Code Online (Sandbox Code Playgroud)

我想要一个额外的列来计算"值"已连续"是"的次数.因此,当Value为'No'时,新变量应始终为0.如果是'No'之后第一次出现'Yes',则将其设置为1.如果那么下一个观察结果也是肯定的,它应该是2一旦"是"链断断续续,下一个"是"的新变量将再次为1.所以我的数据框应如下所示:

Day Value Count
 1   Yes  1
 2    No  0
 3   Yes  1  
 4   Yes  2
 5   Yes  3
 6    No  0
 7    No  0
 8   Yes  1
 9   Yes  2
10    No  0 
Run Code Online (Sandbox Code Playgroud)

希望有人可以帮助我.

r

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