我正在尝试将PhantomJS与RSelenium一起使用并且似乎遇到了麻烦:
require(RSelenium)
RSelenium::startServer()
remDr <- remoteDriver(browserName = "phantomjs", extraCapabilities = list(phantomjs.binary.path = "C:/Users/home/Desktop/phantomjs-1.9.8-windows/phantomjs.exe"))
remDr$open()
Run Code Online (Sandbox Code Playgroud)
这导致:
$class
[1] "org.openqa.selenium.UnsupportedCommandException"
$additionalInformation
[1] "\nDriver info: driver.version: unknown"
Run Code Online (Sandbox Code Playgroud)
我sessionInfo()在下面:
$class
[1] "org.openqa.selenium.UnsupportedCommandException"
$additionalInformation
[1] "\nDriver info: driver.version: unknown"
Run Code Online (Sandbox Code Playgroud)
更新:不幸的是,下面的解决方案似乎不起作用:
[1] "Connecting to remote server"
Error: Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command.
class: java.lang.ClassNotFoundException
Run Code Online (Sandbox Code Playgroud) 在 UNIX 系统上工作时,会将~我的目录扩展到我的 UNIX 主目录。在我的 Windows 计算机上时,我想~扩展到映射并指向 Unix 主目录的驱动器。我在 Windows 计算机上使用 RStudio 进行编码,它将扩展~为没有帮助的东西,并且我在更改它时遇到了麻烦。我已经使用了环境变量,PATH但无法让它指向我想要的。有任何想法吗?
更新:
\n\n根据乔希的回答。R_USER在启动 RStudio 之前更改Windows 中的环境变量会在启动时产生:
Error: invalid version specification \xe2\x80\x98NA\xe2\x80\x99\nIn addition: Warning message:\nIn utils:::packageDescription(packageName, fields = "Version") :\n no package \'rstudio\' was found\nRun Code Online (Sandbox Code Playgroud)\n\n每次 RStudio 启动后都可以使用此答案手动更改它,但我想避免这样做。
\n想象一下,您在RSelenium页面上单击一个元素,并希望从结果页面中检索结果.如何检查以确保生成的页面已加载?我可以Sys.sleep()在处理页面和单击元素之间插入,但这似乎是一种非常难看和缓慢的做事方式.
在Linux上,RSelenium/ Selenium似乎表现不正常.我手动启动服务器,似乎启动良好.有时我可以从R会话连接到它,有时我会收到错误.我还不能确定原因:相同的脚本似乎有时会工作,而不是其他时间.有任何想法吗?
以下是启动服务器的输出:
12:41:25.811 INFO - Launching a standalone server
12:41:26.102 INFO - Java: Sun Microsystems Inc. 11.0-b16
12:41:26.102 INFO - OS: Linux 2.6.32-431.17.1.el6.x86_64 amd64
12:41:26.157 INFO - v2.44.0, with Core v2.44.0. Built from revision 76d78cf
12:41:26.492 INFO - Default driver org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: registration capabilities Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] does not match with current platform: LINUX
12:41:26.589 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
12:41:26.589 INFO - Version Jetty/5.1.x
12:41:26.590 INFO - …Run Code Online (Sandbox Code Playgroud) 我有一个data.table看起来像这样:
id A1g_hi A2g_hi A3g_hi A4g_hi
1 2 3 4 5
...
Run Code Online (Sandbox Code Playgroud)
我想melt这个表,所以它看起来像这样:
id time hi
1 1 2
1 2 3
1 3 4
1 4 5
...
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事:
melt(dtb, measure.vars = patterns("^A"), value.name = "hi", variable.name="time")
Run Code Online (Sandbox Code Playgroud)
哪个不给我想要的东西.我是否需要在这里求助于字符串拆分,或者是否存在data.table执行此操作的本机函数?
我想使用zoo函数rollapply在时间序列上应用函数(例如均值),但仅使用最后N个已知点.例如:
x = zoo(c(1,2,3,4), order.by=c(10,11,12,13))
rollmean(x,2)
生产:
10 11 12
1.5 2.5 3.5
我想制作一个系列,其日期条目为11,12,13,值为1.5,2.5,3.5.这些值似乎是正确的,但rollmean输出的日期似乎与我想要的不一致.我有点担心只是将我想要的日期分配给动物园对象使用time(x)<-因为我不确定rollapply实际上做的是正确的事情.帮助一如既往地受到赞赏.
我有一个data.table,我需要从不同的行位置开始提取相等长度的段.最简单的方法是什么?例如:
x <- data.table(a=sample(1:1000,100), b=sample(1:1000,100))
r <- c(1,2,10,20,44)
idx <- lapply(r, function(i) {j <-which(x$a == i); if (length(j)>0) {return(j)} })
y <- lapply(idx, function(i) {if (!is.null(i)) x[i:(i+5)]})
do.call(rbind, y)
a b
1: 44 63
2: 96 730
3: 901 617
4: 446 370
5: 195 341
6: 298 411
Run Code Online (Sandbox Code Playgroud)
这当然不是data.table做事的方式所以我希望有更好的方法吗?
编辑:根据下面的评论,我编辑它只是为了清楚,它们中的值a不一定是连续的,也不对应于行号.
我想将paste两个字符串放在一起,并在末尾用另一个字符填充以使组合具有一定的长度.我想知道是否有paste一个可以通过的选项或我错过的另一个技巧?我可以通过计算每个行的长度然后调用来在多行中执行此操作paste,rep(my_pad_character,N)但我想在一行中执行此操作.
例如:垫在一起"hi",并用"hello"垫子"a"来制作序列长度为10.结果将是"hihelloaaa"
我目前使用data.table以下方式使用面板数据:
require(data.table)
x <- data.table(id=1:10, t=rep(1:10, each=10), v=1:100)
setkey(x, id, t) #so that things are in increasing order
x[,lag_v:=c(NA, v[1:(length(v)-1)]),by=id]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来做到这一点?我在网上找到了关于交叉连接的东西,这是有道理的.但是,交叉连接会data.table为大型数据集生成相当大的数据集,所以我对使用它犹豫不决.
当试图merge对xts对象,它看起来并不像suffixesARG正常工作:
require(xts)
x <- xts(1:10, seq.Date(from=as.Date("2012-01-01"), len=10, by=1))
y <- xts(11:20, seq.Date(from=as.Date("2012-01-01"), len=10, by=1))
names(x) <- "x"
names(y) <- "x"
merge(x,y,suffixes=c("truex", "truey"))
x x.1
2012-01-01 1 11
2012-01-02 2 12
2012-01-03 3 13
2012-01-04 4 14
2012-01-05 5 15
2012-01-06 6 16
2012-01-07 7 17
2012-01-08 8 18
2012-01-09 9 19
2012-01-10 10 20
Run Code Online (Sandbox Code Playgroud)
我在滥用吗?