在R中,我正在调用unlist一个列表来转换为向量.但是,我的一些列表元素是空的,因此返回integer(0).在unlist()默认情况下,功能下降这一点.如何返回NA列表为空的向量?我创建了一个可重现的例子:
> ex.list <- list()
> ex.list[[1]] <- integer(0)
> ex.list[[2]] <- c(1,2,3)
> ex.list
[[1]]
integer(0)
[[2]]
[1] 1 2 3
> unlist(ex.list)
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
谢谢.
我目前正在使用以下设置来更改 Mac OS X 中的 IP 地址:
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.1'
}
proxies = {
"http": "http://127.0.0.1:8118"
}
r_ip = requests.get("http://icanhazip.com", proxies=proxies, headers=headers_tor)
print(r_ip.text)
Run Code Online (Sandbox Code Playgroud)
我首先在命令行中运行 Tor,然后执行上面的命令。我注意到 IP 地址不会立即更改,而是需要几秒钟才能运行上面的代码块以生成新的 IP 地址。此外,在我运行 Tor 的终端页面上,它输出如下消息:
Aug 25 04:13:53.000 [notice] Rate limiting NEWNYM request: delaying by 7 second(s)
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有延迟的情况下更改IP地址?
stargazer我在 中报告了两个回归R,并add.lines()在最后添加了一个预测表。我的桌子目前看起来像:
但我想在“x 值的预测值”正下方添加一行,以便它成为自己的行,就像我们在“观察”行中一样。有没有办法做到这一点?
生成回归数据的代码:
x <- 1:100
y <- rnorm(100, 4*x, 5)
mod1 <- lm(y ~ x)
mod2 <- lm(y ~ 1)
se1 <- summary(mod1)$coef[2,2]
se2 <- summary(mod2)$coef[1,2]
mod1.pred1 <- predict(mod1, newdata=data.frame(x=1))
mod2.pred1 <- predict(mod2, newdata=data.frame(x=1))
mod1.pred2 <- predict(mod1, newdata=data.frame(x=2))
mod2.pred2 <- predict(mod2, newdata=data.frame(x=2))
Run Code Online (Sandbox Code Playgroud)
带表的 Stargazer 输出:
stargazer(mod1, mod2, se = list(se1, se2), out="Results.html", notes="Two Models", keep.stat="n", type = "text",
table.layout ="ldmc#-t-s-a=n",
add.lines = list(
c("Predicted Values on x Values"),
c("", "", "", ""), …Run Code Online (Sandbox Code Playgroud) 我想创建一个块对角矩阵,对角线块重复一定次数,非对角线块都是零矩阵.例如,假设我们从具有以下内容的矩阵开始:
> diag.matrix
[,1] [,2] [,3] [,4] [,5]
[1,] 1.0 0.5 0.5 0.5 0.5
[2,] 0.5 1.0 0.5 0.5 0.5
[3,] 0.5 0.5 1.0 0.5 0.5
[4,] 0.5 0.5 0.5 1.0 0.5
[5,] 0.5 0.5 0.5 0.5 1.0
Run Code Online (Sandbox Code Playgroud)
我希望这个矩阵是对角块矩阵,所以最后我有类似的东西:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1.0 0.5 0.5 0.5 0.5 0.0 0.0 0.0 0.0 0.0
[2,] 0.5 1.0 0.5 0.5 0.5 0.0 0.0 0.0 0.0 0.0
[3,] 0.5 0.5 1.0 0.5 0.5 0.0 0.0 0.0 …Run Code Online (Sandbox Code Playgroud) 在R中,可以指定一个公式:
F <- as.formula('X ~ 1')
Run Code Online (Sandbox Code Playgroud)
我试图想出一种方法来测试F上面是否仅包含一个拦截,即~ 1.我试图用grepl无济于事.有没有办法肯定测试上面的公式是否只包含截距?即,我希望提出一种方法,在以下不同情况下将返回true:
F <- as.formula('X~ 1')
F <- as.formula('X~1')
F <- as.formula('X ~1')
Run Code Online (Sandbox Code Playgroud)
同样.谢谢!
我目前有大约5000个元素的大型列表。可重现的示例如下:
List.5000 <- replicate(5000, c(list(A='A',value.A=10),list(B='B',value.B=20)), simplify = F)
Run Code Online (Sandbox Code Playgroud)
其中有:
> List.5000
[[1]]
[[1]]$A
[1] "A"
[[1]]$value.A
[1] 10
[[1]]$B
[1] "B"
[[1]]$value.B
[1] 20
[[2]]
[[2]]$A
[1] "A"
[[2]]$value.A
[1] 10
[[2]]$B
[1] "B"
[[2]]$value.B
[1] 20
....
Run Code Online (Sandbox Code Playgroud)
当我打电话names(List.5000)时返回NULL。但是当我打电话时names(List.5000[[1]]),它给出:
"A" "value.A" "B" "value.B"
Run Code Online (Sandbox Code Playgroud)
我想将名称更改"B"为"Z"。有没有一种方法,而不必求助于创建新列表,然后循环和重建呢?
在 Instagram 登录页面上,如果检查 url ' https://www.instagram.com/accounts/web_create_ajax/ ' 的 POST 调用元素,则会列出以下内容作为标头:
Host: www.instagram.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.instagram.com/
X-CSRFToken: 7dmO9F3JuVGvSXumd79yByPxnHoWHz1A
X-Instagram-AJAX: c2d8f4380025
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
Content-Length: 102
Cookie: csrftoken=7dmO9F3JuVGvSXumd79yByPxnHoWHz1A; mid=W30zsQAEAAErXHJ3iUojfTceCd53; mcd=3; csrftoken=7dmO9F3JuVGvSXumd79yByPxnHoWHz1A; rur=FTW
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人知道它X-Instagram-AJAX是什么以及我每次如何生成它。它与 成对连接吗X-CSRFToken?谢谢。
我目前正在查看一些适用于 Linux 系统(我使用的是 Mac)的代码,并一直在尝试运行这一awk行:
awk -F"[:,}][^:\/\/]" '{for(i=1;i<=NF;i++){if($i~/\042'$KEY'\042/)
{print $(i+1)}}}' | tr -d '"' | sed -n ${num}p | sed -e
's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[,]*$//'
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
awk: warning: escape sequence `\/' treated as plain `/'.
Run Code Online (Sandbox Code Playgroud)
我了解某些实现和语法与 Mac 和 Linux 不同。这个错误可能是其中之一吗?谢谢。
R我想知道如何使用该函数运行 500 个并行作业Rscript。我目前有一个R文件的标题位于顶部:
args <- commandArgs(TRUE)
B <- as.numeric(args[1])
Num.Cores <- as.numeric(args[2])
Run Code Online (Sandbox Code Playgroud)
在 R 文件之外,我希望传递要运行的 500 个作业中的哪一个,由B. 另外,我想控制每个作业可用的核心/CPU 数量,Num.Cores。
我想知道是否有软件或指南可以实现这一点。我目前有一台 CentOS 7/Linux 服务器,我知道一种方法是安装 Slurm。然而,这很麻烦,我想知道是否有办法用队列执行 500 个作业。谢谢。