小编And*_*arr的帖子

如何确定字符向量是否是有效的数字或整数向量

我试图将嵌套列表结构转换为数据帧.该列表看起来类似于以下内容(它是使用httr包读取的解析JSON中的序列化数据).

  myList <- list(object1 = list(w=1, x=list(y=0.1, z="cat")), object2 = list(w=NULL, x=list(z="dog")))
Run Code Online (Sandbox Code Playgroud)

编辑:我原来的示例数据太简单了.实际数据是不规则的,这意味着并非每个对象都存在所有变量,并且一些列表元素为NULL.我编辑了数据以反映这一点.

unlist(myList)在递归展平列表方面做得非常好,然后我可以用它lapply来很好地展平所有对象.

  flatList <- lapply(myList, FUN= function(object) {return(as.data.frame(rbind(unlist(object))))}) 
Run Code Online (Sandbox Code Playgroud)

最后,我可以使用它来关闭它 plyr::rbind.fill

  myDF <- do.call(plyr::rbind.fill, flatList)
  str(myDF)

  #'data.frame':    2 obs. of  3 variables:
  #$ w  : Factor w/ 2 levels "1","2": 1 2
  #$ x.y: Factor w/ 2 levels "0.1","0.2": 1 2
  #$ x.z: Factor w/ 2 levels "cat","dog": 1 2
Run Code Online (Sandbox Code Playgroud)

问题是w和xy现在被解释为字符向量,默认情况下会将其解析为数据帧中的因子.我认为这unlist()是罪魁祸首,但我无法想出另一种递归展平列表结构的方法.解决方法是对数据帧进行后处理,然后分配数据类型.确定向量是有效数值向量还是整数向量的最佳方法是什么?

r lapply rbind

17
推荐指数
2
解决办法
1万
查看次数

使用slidify将图像添加到标题幻灯片

我正在使用最新版本的Rstudio(和knitr),我已经从github安装了slidify的开发版本.Slidify允许您通过1次点击直接从Rmarkdown到html5slides.

我的问题是我想在标题幻灯片中添加图像,但使用正常的Rmarkdown语法不起作用.我认为这是因为第一张幻灯片被指定为YAML.

title       : 
subtitle    : 
author      : 
job         : 
framework   : io2012        # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js  # {highlight.js, prettify, highlight}
hitheme     : tomorrow      # 
widgets     : []            # {mathjax, quiz, bootstrap}
mode        : selfcontained # {standalone, draft}
Run Code Online (Sandbox Code Playgroud)

如果我在第一个幻灯片规范中添加任何内容,我会在函数yaml.load()中收到错误,该函数解析YAML.有没有办法使用YAML指定背景图像?

r r-markdown slidify

13
推荐指数
1
解决办法
5069
查看次数

递归构建分层JSON树?

我有一个父子连接数据库.数据看起来如下所示,但可以以您想要的任何方式呈现(字典,列表,JSON等).

links=(("Tom","Dick"),("Dick","Harry"),("Tom","Larry"),("Bob","Leroy"),("Bob","Earl"))
Run Code Online (Sandbox Code Playgroud)

我需要的输出是一个分层的JSON树,它将用d3渲染.数据中有离散的子树,我将附加到根节点.所以我需要递归地遍历链接,并构建树结构.我能得到的最远的是遍历所有人并追加他们的孩子,但我无法想出更高阶的链接(例如如何将带孩子的人附加到其他人的孩子身上).这与此处的另一个问题类似,但我无法事先知道根节点,因此我无法实现已接受的解决方案.

我将从我的示例数据中获取以下树结构.

{
"name":"Root",
"children":[
    {
     "name":"Tom",
     "children":[
         {
         "name":"Dick",
         "children":[
             {"name":"Harry"}
         ]
         },
         {
          "name":"Larry"}
     ]
    },
    {
    "name":"Bob",
    "children":[
        {
        "name":"Leroy"
        },
        {
        "name":"Earl"
        }
    ]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

这个结构在我的d3布局中呈现如下. 渲染图像

python django recursion json d3.js

9
推荐指数
1
解决办法
1万
查看次数

如何在不改变轴标签对齐的情况下改变ggplot标题的垂直位置

编辑:问题是由于我错误地尝试改变theme(title = element_text()),当我需要改变时theme(plot.title(element_text()).我会注意到这是我更仔细地审查theme()文档.

原帖:

更改标题垂直对齐也会改变x和y轴标签的位置.这是一个错误吗?还是我误解了theme()的功能?我正在运行ggplot2版本0.9.3.1

最小的可重复的例子.

require(ggplot2)
set.seed(12345)
x <- rnorm(100,10,0.5)
y <- x * 3 + rnorm(100)
df <- data.frame(y,y)
Run Code Online (Sandbox Code Playgroud)

根据我的口味,默认标题太靠近图表....

ggplot(df,aes(x,y)) + 
geom_point() + 
labs(title="My Nice Graph")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我尝试移动标题时,轴标签也会移动,并在图形上难以绘制.

ggplot(df,aes(x,y)) + 
geom_point() + 
labs(title="My Nice Graph") + 
theme(title = element_text(vjust=2))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

7
推荐指数
2
解决办法
2万
查看次数

如何从Rstudio ioslides演示文稿中删除标题幻灯片

我正在使用R Studio和R Markdown来创建ioslides演示文稿.我想删除标题幻灯片,并使用普通幻灯片开始演示.到目前为止,我已尝试从YAML选项中删除标题,但这只会导致标题页空白.

如何完全删除标题页?

我的YAML选项

---
output: 
  ioslides_presentation:
    widescreen: true
---
Run Code Online (Sandbox Code Playgroud)

r rstudio knitr r-markdown ioslides

6
推荐指数
1
解决办法
797
查看次数

使用igraph在R中绘制多个离散网络

我有一套简单的方向关系(parent-> child),我想绘制它.我的数据结构使得有许多离散的子网络.这是一些看起来像我的假数据.

require(igraph)
parents<-c("A","A","C","C","F","F","H","I")
children<-c("B","C","D","E","G","H","I","J")
begats<-data.frame(parents=parents,children=children)
graph_begats<-graph.data.frame(begats)
plot(graph_begats)
Run Code Online (Sandbox Code Playgroud)

假数据中有两个不同的子网络,每个子网络都是严格的父子谱系.我需要在同一个窗口中绘制两个谱系作为树网络(理想情况下是相同的顶点坐标系).我已经尝试过使用layout.reingold.tilford(),但最多只能绘制一个树,所有其他顶点都绘制在根顶点的顶部,就像这样.

lo<-layout.reingold.tilford(graph_begats,root=1)
plot(graph_begats,layout=lo)
Run Code Online (Sandbox Code Playgroud)

为任意数量的离散谱系做这个的任何想法?

tree r igraph

5
推荐指数
1
解决办法
1578
查看次数

为什么数据帧上的is.vector不返回TRUE?

tl; dr - R中的矢量到底是什么?

长版:

很多东西是R中的向量.例如,数字是长度为1的数字向量:

is.vector(1)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

列表也是一个向量.

is.vector(list(1))
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

好的,所以列表是一个向量.显然,数据框是一个列表.

is.list(data.frame(x=1))
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

但是,(似乎违反了传递属性),数据帧不是矢量,即使数据帧是列表,列表也是矢量.编辑:它是一个向量,它只有其他属性,这会导致这种行为.见下面接受的答案.

is.vector(data.frame(x=1))
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

怎么会这样?

r

5
推荐指数
2
解决办法
629
查看次数

pandoc markdown 到 docx - 将列表保留在一页上

我有一个像这样的降价列表:

* Question A - Answer 1 - Answer 2 - Answer 3 当我使用 pandoc 将 markdown 文档转换为 docx 时,我需要确保所有答案 (1 - 3) 与问题 A 出现在同一页面上。我怎样才能做到这一点?

markdown ms-word pandoc

3
推荐指数
1
解决办法
3610
查看次数

如何在tastypie中使用DjangoAuthorization()来限制对资源的GET访问

我正在使用tastypie来创建RESTful API.我根据django管理员权限限制了用户授权. 根据文档,我正在尝试实现DjangoAuthorization().

class myResource(ModelResource):
   class Meta:
      queryset = myModel.objects().all()
      allowed_methods = ['get','post']
      authentication = ApiKeyAuthentication()
      authorization = DjangoAuthorization()
Run Code Online (Sandbox Code Playgroud)

目前,fakeuser完全没有Django权限的用户myModel仍然可以从api获取数据.该用户被适当地限制POST数据.

tl; dr如何扩展DjangoAuthorization()类以限制模型上没有Django权限的用户的GET

python django tastypie

2
推荐指数
1
解决办法
838
查看次数