我有一个大的时间段数据集,由"开始"和"结束"列定义.有些时期重叠.
我想将所有重叠时间段组合(展平/合并/折叠)以具有一个"开始"值和一个"结束"值.
一些示例数据:
ID start end
1 A 2013-01-01 2013-01-05
2 A 2013-01-01 2013-01-05
3 A 2013-01-02 2013-01-03
4 A 2013-01-04 2013-01-06
5 A 2013-01-07 2013-01-09
6 A 2013-01-08 2013-01-11
7 A 2013-01-12 2013-01-15
Run Code Online (Sandbox Code Playgroud)
期望的结果:
ID start end
1 A 2013-01-01 2013-01-06
2 A 2013-01-07 2013-01-11
3 A 2013-01-12 2013-01-15
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
require(dplyr)
data <- structure(list(ID = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L), class = "factor", .Label = "A"),
start = structure(c(1356998400, 1356998400, 1357084800, 1357257600,
1357516800, 1357603200, 1357948800), tzone = …Run Code Online (Sandbox Code Playgroud) 我使用命令在Ubuntu上安装了R-3.1.2
wget http://cran.r-project.org/src/base/R-3/R-3.1.2.tar.gz
tar xvfz R-3.1.2.tar.gz
cd R-3.1.2
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
当我尝试启动RStudio时,我收到了错误
找不到R共享库(/usr/local/lib/R/lib/libR.so).如果这是R的自定义构建,是否使用--enable-R-shlib选项构建?
所以我回去试图重新配置
./configure --enable-R-shlib=yes
make
Run Code Online (Sandbox Code Playgroud)
但我得到了错误
collect2: error: ld returned 1 exit status
make[3]: *** [libR.so] Error 1
make[3]: Leaving directory `/usr/local/lib/R-3.1.2/src/main'
make[2]: *** [R] Error 2
make[2]: Leaving directory `/usr/local/lib/R-3.1.2/src/main'
make[1]: *** [R] Error 1
make[1]: Leaving directory `/usr/local/lib/R-3.1.2/src'
make: *** [R] Error 1
Run Code Online (Sandbox Code Playgroud)
当搜索堆栈溢出时,我在这里找到了一个答案: 如何使用--enable-R-shlib配置R-3.0.1, 这表明问题是我试图在我之前编译的目录中编译而没有" --enable-R-shlib"选项
我试图通过使用命令来解决问题
make uninstall
Run Code Online (Sandbox Code Playgroud)
这并没有给出任何错误"没有什么可以做'卸载'." 语句,但它确实成功卸载了R.
./configure --enable-R-shlib=yes
Run Code Online (Sandbox Code Playgroud)
这给出了错误
config.status: error: cannot find input file: `src/library/base/DESCRIPTION.in'
Run Code Online (Sandbox Code Playgroud)
然后
make …Run Code Online (Sandbox Code Playgroud) 在ggplot2中,如何将绘图标题放在绘图的底部.
qplot(rnorm(100)) + ggtitle("My Title")
Run Code Online (Sandbox Code Playgroud)
把标题放在情节的中间和顶部,而我希望它位于情节的中间和底部.
我试图使用这种方法对齐4 ggplot等值区域图的左右边缘.我虽然无法做到这一点.
原图:
library(ggplot2); library(gridExtra)
crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
states_map <- map_data("state")
plot1 <- ggplot(crimes, aes(map_id = state)) +
geom_map(aes(fill = Murder), map = states_map) +
expand_limits(x = states_map$long, y = states_map$lat) +
scale_fill_gradient(low="white", high="darkgreen", name="Really Long Name 1")
plot2 <- plot1 + scale_fill_gradient(name="Really Long Name 2 and then some")
plot3 <- plot1 + scale_fill_gradient(name="Short 3")
plot4 <- plot1 + scale_fill_gradient(name="Really Long Name 4")
grid.arrange(plot1, plot3, plot2, plot4, ncol = 2)
Run Code Online (Sandbox Code Playgroud)
尝试对齐绘图边缘(相同结果):
p1 <- ggplotGrob(plot1)
p2 …Run Code Online (Sandbox Code Playgroud) 我有一些时间序列数据,我在ggplot2中拟合黄土曲线,如附图所示.数据采用"S"曲线的形状.我真正需要知道的是数据开始趋于平稳的日期,它看起来正好在'550'或'600'时间
是否有某种定量方式可以在图中标出?
指向数据集的链接:http://dl.dropbox.com/u/75403/stover_data.txt
A dput()数据集:
structure(list(date = c(211L, 213L, 215L, 217L, 218L, 221L, 222L,
223L, 224L, 225L, 226L, 228L, 229L, 230L, 231L, 232L, 233L, 234L,
235L, 236L, 237L, 238L, 239L, 240L, 241L, 242L, 244L, 246L, 247L,
248L, 249L, 250L, 251L, 253L, 254L, 255L, 256L, 258L, 259L, 260L,
261L, 262L, 263L, 264L, 265L, 266L, 267L, 268L, 269L, 270L, 271L,
272L, 273L, 274L, 275L, 276L, 277L, 278L, 279L, 281L, 282L, 283L,
285L, 286L, 287L, 288L, 290L, 291L, 292L, …Run Code Online (Sandbox Code Playgroud) D <- "06.12.1948" # which is dd.mm.yyyy
as.Date(D, "%d.%m.%y") # convert to date
[1] "2019-12-06" # ????
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
Sys.getlocale(category ="LC_ALL")[1]"LC_COLLATE = German_Austria.1252; LC_CTYPE = German_Austria.1252; LC_MONETARY = German_Austria.1252; LC_NUMERIC = C; LC_TIME = German_Austria.1252"
根据这个R Sweave示例加载外部R脚本是相当简单的:
<<external-code, cache=FALSE>>=
read_chunk('foo-bar.R')
@
Run Code Online (Sandbox Code Playgroud)
R Markdown可以做同样的事情吗?
在开发基于组件/环的clojure应用程序时,emacs/cider的正确工作流程/使用途径是什么?
我觉得我可以"附加"到我正在运行的compojure/ring-process,更改其代码,读取/更改其数据,但我无法理解我该如何做到这一点?什么是正确的方法?
我所做的?
lein new compojure my-project
cd my-project
lein ring server-headless
Run Code Online (Sandbox Code Playgroud)
开发服务器现在运行.如果我更改项目中的文件,它们将自动重新加载.那很好.但我想要的是,我直接附加到流程并更改其功能,例如.
我明白这是可能的,但我无法理解.
这就是我的数据表的样子:
library(data.table)
dt <- fread('
Product Group LastProductOfPriorGroup
A 1 NA
B 1 NA
C 2 B
D 2 B
E 2 B
F 3 E
G 3 E
')
Run Code Online (Sandbox Code Playgroud)
该LastProductOfPriorGroup列是我想要的列.我正在尝试从前一组的最后一行获取产品.所以在前两行中,没有先前的组,因此它是NA.在第三行中,前一组1的最后一行中的产品是B.我试图通过这个来实现这个目标
dt[,LastGroupProduct:= shift(Product,1), by=shift(Group,1)]
Run Code Online (Sandbox Code Playgroud)
无济于事.
灵感来自Q 在曲线中找到肘部/膝盖,我开始玩耍smooth.spline().
特别是,我想要想象参数df(自由度)如何影响近似以及一阶和二阶导数.请注意,此Q 不是关于近似值,而是关于可视化中的特定问题(或边缘情况)ggplot2.
facet_grid()library(ggplot2)
ggplot(ap, aes(x, y)) +
geom_point(data = dp, alpha = 0.2) +
geom_line() +
facet_grid(deriv ~ df, scales = "free_y", labeller = label_both) +
theme_bw()
Run Code Online (Sandbox Code Playgroud)
dp是一个data.table,包含寻求近似的数据点,ap是一个data.table,带有近似数据加上导数(数据如下).
对于每一行,facet_grid()与scales = "free_y"已choosen其中显示了所有的数据的规模.不幸的是,一个面板有一些"异常值",这使得很难在其他面板中看到细节.所以,我想"放大".
coord_cartesian()ggplot(ap, aes(x, y)) +
geom_point(data = dp, alpha = 0.2) +
geom_line() +
facet_grid(deriv ~ df, scales = "free_y", labeller = label_both) +
theme_bw() +
coord_cartesian(ylim = c(-200, …Run Code Online (Sandbox Code Playgroud)