繁体   English   中英

R:data.frame到矢量

[英]R: data.frame to vector

让我通过说我对R知之甚少来开头这个问题。我正在使用read.table(“ file.txt”,T)将文本文件导入R。 文本文件为通用格式:

header1    header2
a          1
a          4
b          3
b          2

每个a是来自样本的观测值,类似地,每个b是来自不同样本的观测值。 我想计算我正在用tapply(header2,header1,Mean)做的a和b集合的各种统计信息。 很好

现在我需要做一些a和b的qqnorm图,并用qqline绘制。 我可以使用tapply(header2,header1,qqnorm)使用tapply(header2,header1,qqline)绘制每个BUT的分位数图,在最后一个分位数图上绘制两条最佳拟合线。 从编程上讲这很有意义,但对我没有帮助。

所以我的问题是,如何将数据帧转换为两个向量(一个用于所有a,一个用于所有b)? 那有意义吗? 基本上,在上面的示例中,我想得出两个向量:a =(1,4)和b =(3,2)。

谢谢!

创建同时执行这两个功能的函数。 您将(至少很容易)无法还原到旧的图形设备。

例如

with(dd, tapply(header2,header1,  function(x) {qqnorm(x); qqline(x)}))

您可以在此处使用data.table来编码优雅(和速度)

您可以传递在data.table范围内求值的函数body的等效项,例如

library(data.table)
DT <- data.table(dd)
DT[, {qqnorm(x)
      qqline(x)}, by=header1]

您实际上并不想用很多对象污染您的全局环境(这将是低效率的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM