我试图将嵌套列表结构转换为数据帧.该列表看起来类似于以下内容(它是使用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()是罪魁祸首,但我无法想出另一种递归展平列表结构的方法.解决方法是对数据帧进行后处理,然后分配数据类型.确定向量是有效数值向量还是整数向量的最佳方法是什么?
我正在使用最新版本的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指定背景图像?
我有一个父子连接数据库.数据看起来如下所示,但可以以您想要的任何方式呈现(字典,列表,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布局中呈现如下. 
编辑:问题是由于我错误地尝试改变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 Studio和R Markdown来创建ioslides演示文稿.我想删除标题幻灯片,并使用普通幻灯片开始演示.到目前为止,我已尝试从YAML选项中删除标题,但这只会导致标题页空白.
我的YAML选项
---
output:
ioslides_presentation:
widescreen: true
---
Run Code Online (Sandbox Code Playgroud) 我有一套简单的方向关系(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)
为任意数量的离散谱系做这个的任何想法?
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)
我有一个像这样的降价列表:
* Question A
- Answer 1
- Answer 2
- Answer 3
当我使用 pandoc 将 markdown 文档转换为 docx 时,我需要确保所有答案 (1 - 3) 与问题 A 出现在同一页面上。我怎样才能做到这一点?
我正在使用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数据.