我试图理解rms
R 中包的一些输出,其中我在分位数回归中使用受限三次样条。我在理解输出时遇到的问题可能更多地与受限三次样条有关,而不是与我在分位数回归中使用它们的事实有关。我拟合一个k = 3 节的受限三次样条函数,如下所示:
fitted.model <- Rq(y ~ rcs(x, 3), x=TRUE, y=TRUE, tau=0.50, data=d)
Run Code Online (Sandbox Code Playgroud)
我很困惑的是
coef(fitted.model)
显示:
Intercept x x'
39.67901296 0.31760226 0.01875437
Run Code Online (Sandbox Code Playgroud)
然而
Function(fitted.model)
显示:
function(x = 56.15) {39.679013+0.31760226* x+1.2554621e-05*pmax(x-38.45,0)^3-2.3161627e-05*pmax(x-56.15,0)^3+1.0607006e-05*pmax(x-77.1,0)^3 }
Run Code Online (Sandbox Code Playgroud)
给定RMS书中的公式2.24和2.25,我预计所获得的系数β 0、β 1和β 2(即β k-1coef(fitted.model)
)将是用 所示的前三个(即k-1)系数Formula(fitted.model)
。截距 (β 0 ) 和 X 的系数 (β 1 ) 显然相同,但公式中显示的 β 2与 中的第二个系数不同coef(fitted.model)
。我误解了什么?
我可以找到一个先前的问题:
使用Django和s3boto,一些管理员图像(icon_clock.gif&icon_calendar.gif)不显示
但它非常过时(2013年).我在Ubuntu 14.04.3 LTS上运行django 1.9.1,apache,wsgi.
首先问题是jquery
文件丢失了,但是在修复的问题中运行collectstatic
(manage.py
)virtualenv
.但是,仍然缺少两个管理媒体文件.404 URL调用是:
http://example.com/missing-admin-media-prefix/img/icon_calendar.gif
http://example.com/missing-admin-media-prefix/img/icon_clock.gif
Run Code Online (Sandbox Code Playgroud)
奇怪的URL前缀导致人们找到与该问题相关的几个非常古老的问题,但似乎已经为django 1.9.1折旧了.
我settings.py
看起来像这样:
STATIC_URL = '/static/'
#ADMIN_MEDIA_PREFIX = '/static/admin/'
#MEDIA_URL = "/media/"
#MEDIA_ROOT = "/home/user/app_root/media/"
STATIC_ROOT = "/home/user/app_root/static/"
Run Code Online (Sandbox Code Playgroud)
已经过时的线条是我在与同一问题相关的过时问题中找到的建议(没有工作).所有其他静态文件都可以正常工作,包括大多数管理文件.
我已经没想完了.
我有一个班级,我正在尝试添加一个新的FloatField
.Django想要一个默认值来填充现有的行(合理的).但是,它拒绝接受我给它的任何价值.
You are trying to add a non-nullable field 'FIELDNAME' to CLASS without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
Select an option: -1
Please select a valid option: -1
Please select a valid option: -1
Please …
Run Code Online (Sandbox Code Playgroud) 我有一个长基因数据框架和各种形式的id(例如OMIM,Ensembl,Genatlas).我想获得与每个基因相关的所有SNP的列表.(这与这个问题相反.)
到目前为止,我发现的最佳解决方案是使用biomaRt包(bioconductor).我需要在这里做一种查找的例子.符合我的目的,这是我的代码:
library(biomaRt)
#load the human variation data
variation = useEnsembl(biomart="snp", dataset="hsapiens_snp")
#look up a single gene and get SNP data
getBM(attributes = c(
"ensembl_gene_stable_id",
'refsnp_id',
'chr_name',
'chrom_start',
'chrom_end',
'minor_allele',
'minor_allele_freq'),
filters = 'ensembl_gene',
values ="ENSG00000166813",
mart = variation
)
Run Code Online (Sandbox Code Playgroud)
这将输出一个如下所示的数据框:
ensembl_gene_stable_id refsnp_id chr_name chrom_start chrom_end minor_allele minor_allele_freq
1 ENSG00000166813 rs8179065 15 89652777 89652777 T 0.242412
2 ENSG00000166813 rs8179066 15 89652736 89652736 C 0.139776
3 ENSG00000166813 rs12899599 15 89629243 89629243 A 0.121006
4 …
Run Code Online (Sandbox Code Playgroud) 我使用tidymodels估计了glmnet逻辑回归。但我无法弄清楚tidymodels中密切相关的两件事:
以下是伪模型的代码。我尝试过tidy()
,coef()
但predict()
都失败了。任何帮助都感激不尽。谢谢。
library(tidymodels)
#> -- Attaching packages --------------------------------------------------------------------------------------------------------------------------- tidymodels 0.1.0 --
#> v broom 0.7.0 v recipes 0.1.13
#> v dials 0.0.8 v rsample 0.0.7
#> v dplyr 1.0.0 v tibble 3.0.3
#> v ggplot2 3.3.2 v tune 0.1.1
#> v infer 0.5.2 v workflows 0.1.2
#> v parsnip 0.1.2 v yardstick 0.0.7
#> v purrr 0.3.4
#> -- Conflicts ------------------------------------------------------------------------------------------------------------------------------ tidymodels_conflicts() --
#> x …
Run Code Online (Sandbox Code Playgroud) 有一些先前的相关问题(1、2、3 ),但没有什么是我想要的,而且我无法让Jenny Bryan 在 2018 年发布的代码示例正常工作。
我有一个与我共享的文件夹,其中包含一些大文件。文件是嵌套的。所以我想递归到子目录并获取每个子目录中的所有文件。就我而言,只有两层,但如果有一种适用于任意数量层的方法就更好了。
最明显的尝试命令就是告诉它下载文件夹,希望它能找出子结构:
#load the libraries
library(tidyverse)
library(googledrive)
#folder link to id
#hidden for privacy reasons
jp_folder = "https://drive.google.com/drive/folders/XXXXX"
folder_id = drive_get(as_id(jp_folder))
#download in entirety
drive_download(folder_id)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,因为它显然无法处理文件夹:
> drive_download(folder_id)
Error: Not a recognized Google MIME type:
* application/vnd.google-apps.folder
Run Code Online (Sandbox Code Playgroud)
我尝试通过进入每个子目录来避免此问题:
#load the libraries
library(tidyverse)
library(googledrive)
#folder link to id
#hidden for privacy reasons
jp_folder = "https://drive.google.com/drive/folders/XXXXX"
#get the id data frame
folder_id = drive_get(as_id(jp_folder))
#find files in folder …
Run Code Online (Sandbox Code Playgroud) 我有一个函数输入data.frame并输出它的残差版本,并将一些选定的变量作为预测变量.
residuals.DF = function(data, resid.var, suffix="") {
lm_f = function(x) {
x = residuals(lm(data=data, formula= x ~ eval(parse(text=resid.var))))
}
resid = data.frame(apply(data,2,lm_f))
colnames(resid) = paste0(colnames(data),suffix)
return(resid)
}
set.seed(31233)
df = data.frame(Age = c(1,3,6,7,3,8,4,3,2,6),
Var1 = c(19,45,76,34,83,34,85,34,27,32),
Var2 = round(rnorm(10)*100))
df.res = residuals.DF(df, "Age", ".test")
df.res
Age.test Var1.test Var2.test
1 -1.696753e-17 -25.1351351 -90.20582
2 -1.318443e-19 -0.8108108 31.91892
3 -5.397735e-18 27.6756757 84.10603
4 -5.927747e-18 -15.1621622 -105.83160
5 -3.807699e-18 37.1891892 -57.08108
6 -6.457759e-18 -16.0000000 -25.76923
7 5.117344e-17 38.3513514 -65.01871
8 -3.807699e-18 -11.8108108 35.91892 …
Run Code Online (Sandbox Code Playgroud) 我制作了一个函数,可以一次绘制来自多个因子分析的载荷,也可以绘制变量不完全重叠(或根本不重叠)的载荷。它可以正常工作,但有时因子负载在各个分析中都是相同的,这意味着这些点会相互绘制。
library(pacman)
p_load(devtools, psych, stringr, plotflow)
source_url("https://raw.githubusercontent.com/Deleetdk/psych2/master/psych2.R")
loadings.plot2 = function(fa.objects, fa.names=NA) {
fa.num = length(fa.objects) #number of fas
#check names are correct or set automatically
if (length(fa.names)==1 & is.na(fa.names)) {
fa.names = str_c("fa.", 1:fa.num)
}
if (length(fa.names) != fa.num) {
stop("Names vector does not match the number of factor analyses.")
}
#merge into df
d = data.frame() #to merge into
for (fa.idx in 1:fa.num) { #loop over fa objects
loads = fa.objects[[fa.idx]]$loadings
rnames = rownames(loads)
loads = as.data.frame(as.vector(loads))
rownames(loads) = …
Run Code Online (Sandbox Code Playgroud) 有几个早期的相关问题,但没有一个为我解决问题:
我的用例如下:我有一个需要绘制的大型数据数据库。由于对数据和绘图本身进行一些必要的预处理(ggplot2),每个绘图都需要几秒钟的时间来创建。我需要做大量的情节。我的想法是,我将通过 dplyr 连接到数据库,而不将所有数据下载到内存中。然后我有一个函数来获取要绘制的数据的子集。这种方法在使用单线程时工作得很好,但是当我尝试使用并行处理时,我遇到了与连接相关的 SQL 错误MySQL server has gone away
。
现在,我最近在 Python 中解决了同样的问题,在这种情况下,解决方案只是终止函数内的当前连接,这会强制建立一个新连接。我使用Django 的connection.close()
where is 来完成此操作。connection
django.db
我的问题是我找不到与此方法等效的 R 方法。当我找到R 的池包时,我以为我已经找到了解决方案:
该包支持在 R 中为各种类型的对象创建对象池,从而降低获取对象的计算成本。目前唯一支持的池对象是
DBI
连接(DBI
有关更多信息,请参阅包),它可用于直接通过DBI
或通过dplyr
. 然而,该类Pool
足够通用,足以允许池化任何 R 对象,前提是有人适当地实现了后端(创建对象工厂类和所有必需的方法)——一个关于如何执行此操作的说明很快就会发布。
我的代码太大,无法在这里发布,但本质上,它看起来像这样:
#libraries loaded as necessary
#connect to the db in some kind of way
#with dplyr
db = src_mysql(db_database, username = db_username, password = …
Run Code Online (Sandbox Code Playgroud) 我用psych
包装模拟SEM(结构方程模型)的数据.我使用了使用psych包来生成和测试结构模型的第17页上给出的代码.代码是
library(psych)
set.seed(42)
fx <- matrix(c(0.9, 0.8, 0.7, rep(0, 9), 0.7, 0.6, 0.5, rep(0, 9), 0.6, 0.5, 0.4), ncol = 3)
rownames(fx) <- paste("x", 1:9, sep="")
fy <- matrix(c(0.6, 0.5, 0.4), ncol=1)
rownames(fy) <- paste("y", 1:3, sep="")
Phi <- matrix(c(1, 0.48, 0.32, 0.4, 0.48, 1, 0.32, 0.3, 0.32, 0.32, 1, 0.2, 0.4, 0.3, 0.2, 1), ncol = 4)
twelveV <- sim.structure(fx=fx, Phi=Phi, fy=fy, n=100, raw=TRUE)
round(twelveV$model, 2)
round(twelveV$model-twelveV$r, 2)
twelveV$observed
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用sem
包来分析模拟数据.代码是
sem.mod <- structure.sem(twelveV$model) …
Run Code Online (Sandbox Code Playgroud) 我一直无法为此找到方法.我想刮掉以下两个网站:
第一个是所有丹麦邮政编码的地图和每个(近期)移民的比例.此外,如果点击区域,则有国家区域.
第二个是每个丹麦投票区的年龄,收入和投票结果等社会经济信息的综合图.看起来有几百个.可以单击条目,但没有效果.但是有一个可能有用的onmouseover效应.
检查请求 我做的第一件事是在打开页面时检查浏览器发送的请求.为此,我使用Firefox内置的F12菜单.此分析表明没有有用的.json文件被传输,这很容易被删除.相反,两个站点都发送构成地图的图像文件(.png),有或没有叠加.
这打开了获取数据的一种方式,即通过以高分辨率(即缩放级别)下载所有这些图像,然后将它们与算法一起重新组合在一起.存在这种问题的算法并且例如在基因组学中使用.
站点1 当单击其中一个区域时,会弹出一个弹出窗口.当发生这种情况时,浏览器会发送获取请求,例如(Skagen,Jutland最北部,ZIP = 9990 [此处列出]):
http://maps.googleapis.com/maps/api/js/LayersService.GetFeature?1sft%3A1uHHijeWypO-5FlUoVWEbyBcQY8AoM4mHVIqOo182&2s33%3A4611686018427392936%232492_5032_40_592_732_329&3sen-US&4m2&1ssg&2s&4m2&1ssc&2sgeometry&4m2&1sy&2s2&callback=_xdc_._1ju85&token=51906
Run Code Online (Sandbox Code Playgroud)
响应是包含一些数据的代码文件.对于上面的一个:
/**/_xdc_._1ju85 && _xdc_._1ju85( [0,[0,0],[["maps_api.col0\u003e\u003e0.Postnummer","9990"],["maps_api.col1\u003e\u003e0.Danmark","7800"],["maps_api.col2\u003e\u003e0.Nordeuropa (uden DK)","99"],["maps_api.col3\u003e\u003e0.Vesteuropa","36"],["maps_api.col4\u003e\u003e0.Østeuropa","275"],["maps_api.col5\u003e\u003e0.Sydeuropa","13"],["maps_api.col6\u003e\u003e0.Nordamerika","4"],["maps_api.col7\u003e\u003e0.Syd- og Mellemamerika","0"],["maps_api.col8\u003e\u003e0.Asien","75"],["maps_api.col9\u003e\u003e0.Afrika","29"],["maps_api.col10\u003e\u003e0.Australien/New Zealand","0"],["maps_api.col11\u003e\u003e0.I alt","8351"],["maps_api.col12\u003e\u003e0.Land2","Rumænien"],["maps_api.col13\u003e\u003e0.Indbyggere 2","205"],["maps_api.col14\u003e\u003e0.Land3","Polen"],["maps_api.col15\u003e\u003e0.Indbyggere3","44"],["maps_api.col16\u003e\u003e0.Land4","Sverige"],["maps_api.col17\u003e\u003e0.Indbyggere4","34"],["maps_api.col18\u003e\u003e0.Land5","Tyskland"],["maps_api.col19\u003e\u003e0.Indbyggere5","26"],["maps_api.col20\u003e\u003e0.Land6","Norge"],["maps_api.col21\u003e\u003e0.Indbyggere6","24"],["maps_api.col22\u003e\u003e0.Land7","Thailand"],["maps_api.col23\u003e\u003e0.Indbyggere7","23"],["maps_api.col24\u003e\u003e0.Land8","Syrien"],["maps_api.col25\u003e\u003e0.Indbyggere8","20"],["maps_api.col26\u003e\u003e0.Land9","Storbritannien"],["maps_api.col27\u003e\u003e0.Indbyggere9","18"],["maps_api.col28\u003e\u003e0.Land10","Sudan"],["maps_api.col29\u003e\u003e0.Indbyggere10","17"],["maps_api.col30\u003e\u003e0.Land11","Litauen"],["maps_api.col31\u003e\u003e0.Indbyggere11","13"],["maps_api.col1\u003e\u003e1.geometry_vertex_count","60"],["maps_api.col2\u003e\u003e1.UUID","til fremtidig brug"],["maps_api.col11\u003e\u003e1.POSTBYNAVN","Skagen"],["maps_api.col5\u003e\u003e2.BYNAVN","Skagen"],["maps_api.col1\u003e\u003e3.1 Dansk","7800"],["maps_api.col2\u003e\u003e3.2 Indvandrere","500"],["maps_api.col3\u003e\u003e3.3 Efterkommere","51"],["maps_api.col4\u003e\u003e3.Dansk andel","93%"],["maps_api.col5\u003e\u003e3.Indvandrere andel","6%"],["maps_api.col6\u003e\u003e3.Efterkommere andel","1%"],["maps_api.col7\u003e\u003e3.procent","7%"],["maps_api.col1\u003e\u003e4.Farveland","4"],["maps_api.col1\u003e\u003e5.FARVE","44"],["description","\u003cdiv class=\"googft-info-window\"\u003e\n\u003cb\u003ePostnummer:\u003c/b\u003e 9990\u003cbr\u003e\n\u003cb\u003eDanmark:\u003c/b\u003e 7800\u003cbr\u003e\n\u003cb\u003eNordeuropa (uden DK):\u003c/b\u003e 99\u003cbr\u003e\n\u003cb\u003eVesteuropa:\u003c/b\u003e 36\u003cbr\u003e\n\u003cb\u003eØsteuropa:\u003c/b\u003e 275\u003cbr\u003e\n\u003cb\u003eSydeuropa:\u003c/b\u003e 13\u003cbr\u003e\n\u003cb\u003eNordamerika:\u003c/b\u003e 4\u003cbr\u003e\n\u003cb\u003eSyd- og Mellemamerika:\u003c/b\u003e 0\u003cbr\u003e\n\u003cb\u003eAsien:\u003c/b\u003e 75\u003cbr\u003e\n\u003cb\u003eAfrika:\u003c/b\u003e 29\n\u003c/div\u003e"]]] )
Run Code Online (Sandbox Code Playgroud)
它有很多Unicode,删除它我们得到:
/**/_xdc_._1ju85 && _xdc_._1ju85( [0,[0,0],[["maps_api.col0\>\>0.Postnummer","9990"],["maps_api.col1\>\>0.Danmark","7800"],["maps_api.col2\>\>0.Nordeuropa (uden DK)","99"],["maps_api.col3\>\>0.Vesteuropa","36"],["maps_api.col4\>\>0.Østeuropa","275"],["maps_api.col5\>\>0.Sydeuropa","13"],["maps_api.col6\>\>0.Nordamerika","4"],["maps_api.col7\>\>0.Syd- og Mellemamerika","0"],["maps_api.col8\>\>0.Asien","75"],["maps_api.col9\>\>0.Afrika","29"],["maps_api.col10\>\>0.Australien/New Zealand","0"],["maps_api.col11\>\>0.I alt","8351"],["maps_api.col12\>\>0.Land2","Rumænien"],["maps_api.col13\>\>0.Indbyggere 2","205"],["maps_api.col14\>\>0.Land3","Polen"],["maps_api.col15\>\>0.Indbyggere3","44"],["maps_api.col16\>\>0.Land4","Sverige"],["maps_api.col17\>\>0.Indbyggere4","34"],["maps_api.col18\>\>0.Land5","Tyskland"],["maps_api.col19\>\>0.Indbyggere5","26"],["maps_api.col20\>\>0.Land6","Norge"],["maps_api.col21\>\>0.Indbyggere6","24"],["maps_api.col22\>\>0.Land7","Thailand"],["maps_api.col23\>\>0.Indbyggere7","23"],["maps_api.col24\>\>0.Land8","Syrien"],["maps_api.col25\>\>0.Indbyggere8","20"],["maps_api.col26\>\>0.Land9","Storbritannien"],["maps_api.col27\>\>0.Indbyggere9","18"],["maps_api.col28\>\>0.Land10","Sudan"],["maps_api.col29\>\>0.Indbyggere10","17"],["maps_api.col30\>\>0.Land11","Litauen"],["maps_api.col31\>\>0.Indbyggere11","13"],["maps_api.col1\>\>1.geometry_vertex_count","60"],["maps_api.col2\>\>1.UUID","til fremtidig brug"],["maps_api.col11\>\>1.POSTBYNAVN","Skagen"],["maps_api.col5\>\>2.BYNAVN","Skagen"],["maps_api.col1\>\>3.1 Dansk","7800"],["maps_api.col2\>\>3.2 Indvandrere","500"],["maps_api.col3\>\>3.3 Efterkommere","51"],["maps_api.col4\>\>3.Dansk andel","93%"],["maps_api.col5\>\>3.Indvandrere andel","6%"],["maps_api.col6\>\>3.Efterkommere andel","1%"],["maps_api.col7\>\>3.procent","7%"],["maps_api.col1\>\>4.Farveland","4"],["maps_api.col1\>\>5.FARVE","44"],["description","\<div class=\"googft-info-window\"\>\n\<b\>Postnummer:\</b\> 9990\<br\>\n\<b\>Danmark:\</b\> 7800\<br\>\n\<b\>Nordeuropa (uden DK):\</b\> 99\<br\>\n\<b\>Vesteuropa:\</b\> 36\<br\>\n\<b\>Østeuropa:\</b\> …
Run Code Online (Sandbox Code Playgroud) 我找不到关于此的先前问题,但这个问题相当接近。
我经常创建新对象并希望它们与其他对象具有相同的名称 ( names
, colnames
, rownames
)。通常,我会使用names
, 或rownames
+ colnames
,但我厌倦了这样做,我想要一个更好的解决方案。我还想要一个允许部分匹配的解决方案,所以我需要一个新函数。我的问题是要完全正确显然并不容易。
首先是一个辅助函数:
get_dims = function(x) {
if (is.null(dim(x))) {
return(length(x))
} else {
return(dim(x))
}
}
Run Code Online (Sandbox Code Playgroud)
这将获取任何对象的尺寸。dim()
返回NULL
原子对象(向量和列表),而它实际上应该只返回它们的长度。
接下来,我们组成一些最小的测试数据:
t = matrix(1:9, nrow=3)
t2 = t
rownames(t) = LETTERS[1:3]; colnames(t) = letters[1:3]
Run Code Online (Sandbox Code Playgroud)
检查:
> t
a b c
A 1 4 7
B 2 5 8
C 3 6 9
> t2
[,1] [,2] [,3]
[1,] 1 4 7
[2,] …
Run Code Online (Sandbox Code Playgroud) r ×9
django ×2
python ×2
bioconductor ×1
biomart ×1
ggplot2 ×1
glmnet ×1
google-maps ×1
mysql ×1
regression ×1
simulation ×1
tidymodels ×1
web-scraping ×1