小编edd*_*ddi的帖子

使用ggplot2的累积图

我正在学习使用ggplot2,我正在寻找ggplot2能够重现以下base::plot结果的最小代码.我已经尝试了一些东西,它们最终都变得非常长,所以我正在寻找最小的表达式,理想情况下我想在x轴上设置日期(plot下面没有这些日期).

df = data.frame(date = c(20121201, 20121220, 20130101, 20130115, 20130201),
                val  = c(10, 5, 8, 20, 4))
plot(cumsum(rowsum(df$val, df$date)), type = "l")
Run Code Online (Sandbox Code Playgroud)

r ggplot2 cumulative-sum

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

R如何改变行的子集

我在改变行的子集时遇到了麻烦dplyr.我正在使用链接命令:%>%说:

data <- data %>%
  filter(ColA == "ABC") %>%
  mutate(ColB = "XXXX")
Run Code Online (Sandbox Code Playgroud)

这很好但问题是我希望能够选择整个原始表并看到mutate只应用于我指定的数据子集.我的问题是,当我在此之后查看数据时,我只看到其子集data及其更新ColB信息.

我也想知道如何使用它data.table.

谢谢.

r subset dplyr data.table

12
推荐指数
2
解决办法
3390
查看次数

如何更改stat_boxplot的宽度(错误栏)

我正在使用ggplot2进行盒子绘图.
但是,我无法更改stat_boxplot的宽度(geom ='errorbar').
这是我的代码的一部分:

geom_boxplot(width=0.5)+stat_boxplot(geom ='errorbar',width=0.5)
Run Code Online (Sandbox Code Playgroud)

没关系geom_boxplot(),但宽度stat_boxplot(geom ='errorbar')不会改变.
有什么建议?谢谢!

r ggplot2

10
推荐指数
1
解决办法
4975
查看次数

什么应该保护PROTECT包装?

我现在多次重写R扩展中有关垃圾收集的内容,但仍然不理解这两种用法之间的区别:

SEXP var = PROTECT(allocVector(STRSXP, 100));
Run Code Online (Sandbox Code Playgroud)

VS

SEXP var;
PROTECT(var = allocVector(STRSXP, 100));
Run Code Online (Sandbox Code Playgroud)

到目前为止,由于我的会话有时会崩溃,所以我的第一个运气会更糟糕(但我在实际代码和介绍指南中都看到了很多用法).有人可以解释这两个任务之间的区别吗?

编辑:

经过一些实验后,我想我得出的结论是,上述两者之间没有任何区别,我看到的崩溃行为的任何差异都是偶然的,但我希望得到更有经验的人的确认.

c r internals

10
推荐指数
1
解决办法
127
查看次数

是否存在用于从stdin读取的fread模拟?

我想fread在(R)脚本中使用,它将通过linux管道机制获取输入数据.以下是否有fread模拟?

read.csv(file = 'stdin', ...)
Run Code Online (Sandbox Code Playgroud)

我还会选择stdin其他方式阅读,然后使用fread它来解析它,因为我主要想要它fread的高级分隔符和标题逻辑.

linux r pipe data.table

9
推荐指数
1
解决办法
1191
查看次数

R中的内部字符串缓存

这个问题源自以下data.table错误报告 - #4978,但我将使用一个data.frame例子来说明这不是一个data.table特定的问题:

考虑以下:

df = data.frame(a = 1, hø = 1)

identical(names(df), c("a", "hø"))
#[1] TRUE

.Internal(inspect(names(df)))
#@0x0000000007b27458 16 STRSXP g0c2 [NAM(2)] (len=2, tl=0)
#  @0x000000000ee604c0 09 CHARSXP g1c1 [MARK,gp=0x61] [ASCII] [cached] "a"
#  @0x0000000007cfa910 09 CHARSXP g0c1 [gp=0x21] [cached] "hø"

.Internal(inspect(c("a", "hø")))
#@0x0000000007b274c8 16 STRSXP g0c2 [] (len=2, tl=0)
#  @0x000000000ee604c0 09 CHARSXP g1c1 [MARK,gp=0x61] [ASCII] [cached] "a"
#  @0x0000000007cfa970 09 CHARSXP g0c1 [gp=0x24,ATT] [latin1] [cached] "hø"
Run Code Online (Sandbox Code Playgroud)

请注意,尽管identical认为两者是相同的,但是底层字符串缓存将"hø"存储在两个不同的位置,同时将"a"存储在一个中.怎么了?这是一个R字符串缓存错误吗?

其重要的原因是 …

r internals data.table

9
推荐指数
1
解决办法
237
查看次数

data.table错误,导致R中的段错误

以下代码段错误R 2.15.0运行data.table 1.8.9.

library(data.table)
d = data.table(date = c(1,2,3,4,5), value = c(1,2,3,4,5))

# works as expected
d[-5][, mean(value), by = list(I(as.integer((date+1)/2)))]

# crashes R
d[-5, mean(value), by = list(I(as.integer((date+1)/2)))]
Run Code Online (Sandbox Code Playgroud)

在相关的说明中,以下两个命令具有非常不同的输出:

d[-5][, value, by = list(I(as.integer((date+1)/2)))]
#    I value
# 1: 1     1
# 2: 1     2
# 3: 2     3
# 4: 2     4

d[-5, value, by = list(I(as.integer((date+1)/2)))]
#    I         value
# 1: 1 2.121996e-314
# 2: 1 2.470328e-323
# 3: 2 3.920509e-316
# 4: …
Run Code Online (Sandbox Code Playgroud)

r data.table

8
推荐指数
1
解决办法
745
查看次数

R中的条件累积和

我有一个时间序列数据框,并希望计算一系列日期内的股票代码的累积回报.当符号和/或日期更改时,应重置累积回报.任何帮助,将不胜感激.我的数据框的一小部分样本如下,包括累积总和列应返回的内容.谢谢.

       Date Symbol  Time   Last Return Cumulative.Sum
1  1/2/2013     AA  9:30  42.00    n/a            n/a
2  1/2/2013     AA 12:00  42.50  1.19%          1.19%
3  1/2/2013     AA 16:00  42.88  0.89%          2.08%
4  1/2/2013   AAPL  9:30 387.00    n/a            n/a
5  1/2/2013   AAPL 12:00 387.87  0.22%          0.22%
6  1/2/2013   AAPL 16:00 388.69  0.21%          0.44%
7  1/3/2013     AA  9:30  42.88    n/a            n/a
8  1/3/2013     AA 12:00  42.11 -1.80%         -1.80%
9  1/3/2013     AA 16:00  41.89 -0.52%         -2.32%
Run Code Online (Sandbox Code Playgroud)

r cumsum

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

data.table和表意外行为

数据来自我正在玩的另一个问题:

dt <- data.table(user=c(rep(3, 5), rep(4, 5)),
                 country=c(rep(1,4),rep(2,6)),
                 event=1:10, key="user")
#    user country event
#1:     3       1     1
#2:     3       1     2
#3:     3       1     3
#4:     3       1     4
#5:     3       2     5
#6:     4       2     6
#7:     4       2     7
#8:     4       2     8
#9:     4       2     9
#10:    4       2    10
Run Code Online (Sandbox Code Playgroud)

这是令人惊讶的行为:

dt[user == 3, as.data.frame(table(country))]
#  country Freq
#1       1    4
#2       2    1

dt[user == 4, as.data.frame(table(country))]
#  country Freq
#1       2    5

dt[, as.data.frame(table(country)), …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

从data.frame或data.table构建一个方形邻接矩阵

我想建立一个正方形邻接matrixdata.table.这是我已有的可重复的例子:

require(data.table)
require(plyr)
require(reshape2)
# Build a mock data.table
dt <- data.table(Source=as.character(rep(letters[1:3],2)),Target=as.character(rep(letters[4:2],2)))
dt
#   Source Target
#1:      a      d
#2:      b      c
#3:      c      b
#4:      a      d
#5:      b      c
#6:      c      b
sry <- ddply(dt, .(Source,Target), summarize, Frequency=length(Source))
sry
#  Source Target Frequency
#1      a      d         2
#2      b      c         2
#3      c      b         2
mtx <- as.matrix(dcast(sry, Source ~ Target, value.var="Frequency", fill=0))
rownames(mtx) <- mtx[,1]
mtx <- mtx[,2:ncol(mtx)]
mtx
#  b   c   d …
Run Code Online (Sandbox Code Playgroud)

r adjacency-matrix data.table

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

标签 统计

r ×10

data.table ×6

ggplot2 ×2

internals ×2

adjacency-matrix ×1

c ×1

cumsum ×1

cumulative-sum ×1

dplyr ×1

linux ×1

pipe ×1

subset ×1