有人可以帮助我完成解决这个问题的一般方法吗?
我正在尝试使用我自己的一些火车运动数据来复制像这样的(全尺寸)火车图.

该图表看起来像......
我的数据看起来像这样......

谢谢您的帮助 :)
样本可以像这样再现......
dat <- structure(list(id = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
5L, 5L, 5L, 5L, 5L, 5L, …Run Code Online (Sandbox Code Playgroud) 我刚刚创建了一个package(RTIO)和一个package repository(Q:/Integrated Planning/R),它是一个公司网络驱动器.
我把我的包装到文件夹中:
Q:/Integrated Planning/R/bin/windows/contrib/2.15/RTIO_0.1-2.zip
根据Dirk在此 SO中的说明,我运行以下命令:
> setwd("Q:/Integrated Planning/R/bin/windows/contrib/2.15")
> tools::write_PACKAGES(".", type="win.binary")
> list.files()
[1] "PACKAGES" "PACKAGES.gz" "RTIO_0.1-2.zip"
>
Run Code Online (Sandbox Code Playgroud)
使用下面的代码,我已将本地存储库添加到我的repos列表中(我将让其他用户也这样做):
options(repos = c(getOption("repos"), RioTintoIronOre = "Q:/Integrated Planning/R"))
Run Code Online (Sandbox Code Playgroud)
现在尝试安装我的包我收到一个错误:
> install.packages("RTIO")
Installing package(s) into ‘C:/Program Files/R/R-2.15.1/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
unable to access index for repository Q:/Integrated Planning/R/bin/windows/contrib/2.15
Warning in install.packages :
unable to access index for repository Q:/Integrated Planning/R/bin/windows/contrib/2.15
Warning in install.packages :
unable to access index for repository …Run Code Online (Sandbox Code Playgroud) 有没有人知道一个灵活的方式来订购ddply总结操作的结果?
这就是我正在做的是按降序深度排序输出.
ddims <- ddply(diamonds, .(color), summarise, depth = mean(depth), table = mean(table))
ddims <- ddims[order(-ddims$depth),]
Run Code Online (Sandbox Code Playgroud)
随着输出......
> ddims
color depth table
7 J 61.88722 57.81239
6 I 61.84639 57.57728
5 H 61.83685 57.51781
4 G 61.75711 57.28863
1 D 61.69813 57.40459
3 F 61.69458 57.43354
2 E 61.66209 57.49120
Run Code Online (Sandbox Code Playgroud)
不是太难看,但我希望在ddply()中做得很好.谁知道怎么样?
Hadley的ggplot2书有ddply和子集的这个例子,但实际上并没有对输出进行排序,只是选择每组最小的两颗钻石.
ddply(diamonds, .(color), subset, order(carat) <= 2)
Run Code Online (Sandbox Code Playgroud) 我已经在OSX 10.9.4附带的2.7.5旁边安装了python 2.7.8.
现在我怎么能指向rPythonpython 2.7.8?
我已.bash_profile按如下方式修改了OSX ,以指向更新的python安装.
export PATH=/usr/local/Cellar/python/2.7.8/bin/:$PATH:usr/local/bin:
Run Code Online (Sandbox Code Playgroud)
现在,当我从终端运行python时,它正确运行较新的版本
mba:~ tommy$ which python
/usr/local/Cellar/python/2.7.8/bin//python
Run Code Online (Sandbox Code Playgroud)
但是,rPython仍然看到2.7.5.
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
Run Code Online (Sandbox Code Playgroud)
它看起来.bash_profile根本不被R使用......所以我试图修改R内的PATH但是仍然没有运气.
> Sys.getenv("PATH")
[1] "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
> Sys.setenv(PATH = "usr/local/Cellar/python/2.7.8/bin")
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 …Run Code Online (Sandbox Code Playgroud) 我已经写在记事本中一些相当长的SQL查询,然后将其粘贴到我的VBA代码,是再正确格式化多行字符串在每个时间线.例如...
在我的文本编辑器中,查询看起来像这样.
SELECT
a,
b,
c,
...,
n
FROM
table1,
table2,
...,
tableN
WHERE
etc
Run Code Online (Sandbox Code Playgroud)
然后粘贴到这个VBA编辑器和手动添加sqlStr = sqlStr&"...."到每一行.
sqlStr = " SELECT "
sqlStr = sqlStr & " a,"
sqlStr = sqlStr & " b,"
sqlStr = sqlStr & " c,"
sqlStr = sqlStr & " ...,"
sqlStr = sqlStr & " n"
sqlStr = sqlStr & " FROM"
sqlStr = sqlStr & " table1,"
sqlStr = sqlStr & " table2,"
sqlStr = sqlStr & " ...,"
sqlStr …Run Code Online (Sandbox Code Playgroud) 我已经苦苦挣扎了几个小时,但我确信这很简单.
我有一个数据集,您可以通过从底部的混乱中复制和粘贴来重现.
它开始看起来像这样
> head(mydata)
POSITION W_MEAN T_MEAN W_STDEV T_STDEV COUNT POSCAT
1 1 108.36 109.37 5.02 4.61 117 START
2 2 107.31 109.32 4.50 3.67 167 START
3 3 108.82 109.72 4.62 4.70 162 START
4 4 109.73 111.17 3.90 3.29 154 START
5 5 109.69 111.16 4.31 4.41 163 START
6 6 110.23 111.69 4.71 3.68 159 START
Run Code Online (Sandbox Code Playgroud)
POSCAT是我根据职位分配的类别.1-40 = START,41-120 = MIDDLE,121 + = END.
我已经为整个数据帧使用了很好的直方图
m <- ggplot(mydata, aes(x=T_MEAN))
m + geom_histogram(aes(y = ..density..)) + geom_density() …Run Code Online (Sandbox Code Playgroud) 如何为列值的随机样本选择所有行?
我有一个如下所示的数据框:
tag weight
R007 10
R007 11
R007 9
J102 11
J102 9
J102 13
J102 10
M942 3
M054 9
M054 12
V671 12
V671 13
V671 9
V671 12
Z990 10
Z990 11
Run Code Online (Sandbox Code Playgroud)
你可以用...复制
weights_df <- structure(list(tag = structure(c(4L, 4L, 4L, 1L, 1L, 1L, 1L,
3L, 2L, 2L, 5L, 5L, 5L, 5L, 6L, 6L), .Label = c("J102", "M054",
"M942", "R007", "V671", "Z990"), class = "factor"), value = c(10L,
11L, 9L, 11L, 9L, 13L, 10L, 3L, 9L, 12L, …Run Code Online (Sandbox Code Playgroud) 我在数据框中有多个整数列,所有这些都是我需要重新编码为0的NA.
df1 <- as.data.frame(sapply(paste(sample(letters,50,T),sample(letters,10), sep=""), function(x) {sample(c(NA,0:5),10,T)} ))
df2 <- as.data.frame(sapply(paste(sample(letters,5,T),sample(letters,10,T), sep=""), function(x) {sample(letters[1:5],10,T)} ))
df <- cbind(df2,df1)
Run Code Online (Sandbox Code Playgroud)
生成这样的输出...(仅显示55的前几列)

我可以手动将NAs重新编码为0,就像df$col[is.na(df$col)] <- 0每列一样,但鉴于列数太多,需要一段时间才能输出全部.
如何在一行或三行中将所有这些NA重新编码为0?
(我意识到我可以融化整数列,然后重新编码一个熔化的列,但我宁愿在基础R中这样做)
是否有捷径可寻?完全介于两者之间,我的意思是不要将7am或7pm的日期时间计算为等于开始或结束时间.
我想这可以使用unix时间戳(以秒为单位)和一些代数来完成,但我无法弄明白.
我很高兴在PLSQL或纯SQL中使用某些东西.
例子:
start end num_7am_7pm_between_dates
2012-06-16 05:00 2012-06-16 08:00 1
2012-06-16 16:00 2012-06-16 20:00 1
2012-06-16 05:00 2012-06-16 07:00 0
2012-06-16 07:00 2012-06-16 19:00 0
2012-06-16 08:00 2012-06-16 15:00 0
2012-06-16 05:00 2012-06-16 19:01 2
2012-06-16 05:00 2012-06-18 20:00 6
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过以下代码将我的工作簿中的大量工作表导出到.csv:
Sub Export_To_CSV(exportPath As String)
Dim filePath As String
For Each WS In ThisWorkbook.Worksheets
filePath = exportPath & "(" & WS.Name & ").dat"
WS.SaveAs Filename:=filePath, FileFormat:=xlCSV
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
问题是这样可以保存我打开的当前.xlsm文件.
如何在不更改当前文件名的情况下导出.csv?
我认为SaveCopyAs会做的伎俩,但它只适用于a workbook而不是a worksheet.