[英]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.