我正在学习使用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) 我在改变行的子集时遇到了麻烦dplyr.我正在使用链接命令:%>%说:
data <- data %>%
filter(ColA == "ABC") %>%
mutate(ColB = "XXXX")
Run Code Online (Sandbox Code Playgroud)
这很好但问题是我希望能够选择整个原始表并看到mutate只应用于我指定的数据子集.我的问题是,当我在此之后查看数据时,我只看到其子集data及其更新ColB信息.
我也想知道如何使用它data.table.
谢谢.
我正在使用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扩展中有关垃圾收集的内容,但仍然不理解这两种用法之间的区别:
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)
到目前为止,由于我的会话有时会崩溃,所以我的第一个运气会更糟糕(但我在实际代码和介绍指南中都看到了很多用法).有人可以解释这两个任务之间的区别吗?
编辑:
经过一些实验后,我想我得出的结论是,上述两者之间没有任何区别,我看到的崩溃行为的任何差异都是偶然的,但我希望得到更有经验的人的确认.
我想fread在(R)脚本中使用,它将通过linux管道机制获取输入数据.以下是否有fread模拟?
read.csv(file = 'stdin', ...)
Run Code Online (Sandbox Code Playgroud)
我还会选择stdin其他方式阅读,然后使用fread它来解析它,因为我主要想要它fread的高级分隔符和标题逻辑.
这个问题源自以下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 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) 我有一个时间序列数据框,并希望计算一系列日期内的股票代码的累积回报.当符号和/或日期更改时,应重置累积回报.任何帮助,将不胜感激.我的数据框的一小部分样本如下,包括累积总和列应返回的内容.谢谢.
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) 数据来自我正在玩的另一个问题:
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) 我想建立一个正方形邻接matrix从data.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)