我有一些代码,在一个地方最终得到一个数据帧列表,我真的想转换为一个大数据帧.
我从之前的一个问题中得到了一些指示,这个问题试图做类似但更复杂的事情.
这是我开始的一个例子(为了说明,这是非常简化的):
listOfDataFrames <- vector(mode = "list", length = 100)
for (i in 1:100) {
listOfDataFrames[[i]] <- data.frame(a=sample(letters, 500, rep=T),
b=rnorm(500), c=rnorm(500))
}
Run Code Online (Sandbox Code Playgroud)
我目前正在使用这个:
df <- do.call("rbind", listOfDataFrames)
Run Code Online (Sandbox Code Playgroud) 我必须在R中将一个向量分成n个大小相等的块.我找不到任何基本函数来做到这一点.谷歌也没有把我带到任何地方.所以这就是我想出来的,希望它可以帮助某些人.
x <- 1:10
n <- 3
chunk <- function(x,n) split(x, factor(sort(rank(x)%%n)))
chunk(x,n)
$`0`
[1] 1 2 3
$`1`
[1] 4 5 6 7
$`2`
[1] 8 9 10
Run Code Online (Sandbox Code Playgroud)
任何评论,建议或改进都非常受欢迎和赞赏.
干杯,塞巴斯蒂安
我经常以产生输出的函数结束,我不理解输出数据类型.我期待一个列表,它最终成为列表或数据框或其他内容的列表.首次使用函数时,确定输出数据类型的好方法或工作流程是什么?
使用install.packages("rJava")命令安装rJava时出现以下错误:
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : '-I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include/linux'
java libs : '-L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/server -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64 -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/amd64 -L -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix …Run Code Online (Sandbox Code Playgroud) 我对python/matplotlib都很陌生,并通过ipython笔记本使用它.我正在尝试向现有图形添加一些注释线,我无法弄清楚如何在图形上渲染线条.因此,例如,如果我绘制以下内容:
import numpy as np
np.random.seed(5)
x = arange(1, 101)
y = 20 + 3 * x + np.random.normal(0, 60, 100)
p = plot(x, y, "o")
Run Code Online (Sandbox Code Playgroud)
我得到以下图表:

那么我如何添加从(70,100)到(70,250)的垂直线?从(70,100)到(90,200)的对角线怎么样?
我尝试了一些事情,Line2D()但除了我之外什么也没有产生混淆.在R我只想用段()函数,这将增加线段.有没有等价的matplotlib?
R中的一种基本数据类型是因子.根据我的经验,因素基本上是一种痛苦,我从不使用它们.我总是转换为角色.我觉得奇怪的是我错过了一些东西.
是否有一些重要的函数示例使用因子作为分组变量,其中因子数据类型变得必要?我应该使用哪些因素?
我经常使用核密度图来说明分布.这些在R中创建简单快捷,如下所示:
set.seed(1)
draws <- rnorm(100)^2
dens <- density(draws)
plot(dens)
#or in one line like this: plot(density(rnorm(100)^2))
Run Code Online (Sandbox Code Playgroud)
这给了我这个漂亮的小PDF:
我想将PDF下面的区域从第75百分位到第95百分位.使用quantile函数计算点很容易:
q75 <- quantile(draws, .75)
q95 <- quantile(draws, .95)
Run Code Online (Sandbox Code Playgroud)
但是我如何遮蔽q75和之间的区域q95?
我想使用lm()函数在R中进行线性回归.我的数据是一年一度的时间序列,一年(22年),另一个州(50个州).我想为每个状态拟合一个回归,以便最后我有一个lm响应的向量.我可以想象为每个状态做循环然后在循环内进行回归并将每个回归的结果添加到向量.但是,这似乎不像R一样.在SAS中我会做一个'by'语句,在SQL中我会做'group by'.R的做法是什么?
我定期编程.好吧,我一直在编程,但有时会以内存错误的形式赶上我.我开始在使用rm()命令删除对象时执行一些纪律,事情变得更好.我在网上看到有关gc()在删除大型数据对象后是否应该显式调用的混合消息.有人说在R返回内存错误之前它会运行,gc()而其他人则说手动强制gc是一个好主意.
我应该gc()在删除大型对象后运行以确保最大的内存可用性吗?
我没有那么多使用ggplot2,但是今天我想我会在一些图表上试一试.但我无法弄清楚如何手动控制颜色geom_line()
我确定我忽略了一些简单的东西,但这是我的测试代码:
x <- c(1:20, 1:20)
variable <- c(rep("y1", 20), rep("y2", 20) )
value <- c(rnorm(20), rnorm(20,.5) )
df <- data.frame(x, variable, value )
d <- ggplot(df, aes(x=x, y=value, group=variable, colour=variable ) ) +
geom_line(size=2)
d
Run Code Online (Sandbox Code Playgroud)
这给了我预期的输出:

我认为我所要做的就是这样简单:
d + scale_fill_manual(values=c("#CC6666", "#9999CC"))
Run Code Online (Sandbox Code Playgroud)
但这没有任何改变.我错过了什么?