找不到对象错误

时间:2015-03-29 16:39:01

标签: r

首先,我需要解释一下,我已经对R进行了MINIMAL培训,并且对编码语言或R等程序有0个知识,所以如果我问愚蠢的问题或者不理解基本的东西,请原谅。

此外,我试图查看过去的主题/答案,但我很难将答案与我的数据联系起来,所以如果这个问题已经得到解答我会道歉。

基本上我有一个数据集,我试图在这个集合中找到两个变量的平均值(在寒冷中行走前的峰值流量,以及在寒冷中行走后的峰值流量)。这是我到目前为止使用的完整代码:

 drugs <- read.table(file = "C:\\Users\\Becky\\My Documents\\Asthmadata.txt", header = TRUE)

 drugs
 str(drugs)

 mean.Asthmadata <- tapply (Asthmadata$trial1, list(Asthmadata$PEFR1), mean)
 mean.Asthmadata

它工作正常,直到平均.Asthmadata。 R中的数据与其他代码一样好,但是当我达到平均值并执行mean.Asthmadata代码时,我一直得到同样的错误:“对象”意思是“没有找到'Asthmadata”< / p>

我的朋友使用了我所做的相同代码,这对他有用,所以我很困惑。难道我做错了什么?

由于

编辑: @BenBolker

这是我的数据集

trial1  PEFR1   trial2  PEFR2
Before  310 After   299
Before  242 After   201
Before  340 After   232
Before  388 After   312
Before  294 After   221
Before  251 After   256
Before  391 After   327
Before  401 After   331
Before  287 After   231

这是我用过的所有代码:

drugs <- read.table(file = "C:\\Users\\Becky\\My Documents\\Asthmadata.txt", header = TRUE)

drugs
str(drugs)

mean.drugs <- tapply (drugs$trial1, list(drugs$PEFR1), mean)
mean.drugs

我的R版本有两个版本:i386 3.1.3和x64 3.1.3 - 我试过了两个版本,但似乎都没有做我想要的。我也在使用Windows 7 Home Premium 64bit。希望我已经包含了你需要的一切,如果我的格式化已经关闭,我会道歉 - 我还不知道如何在这里正确格式化。

我现在得到的错误是:“split.default(X,group)中的错误:第一个参数必须是一个向量”,当运行Roland友好提供的代码时。所以每次尝试时我都会遇到不同的错误 - 这肯定是我做错了。

希望我已正确格式化并包含您需要的所有内容。谢谢:))

1 个答案:

答案 0 :(得分:1)

drugs <- read.table(header=TRUE,text="
trial1  PEFR1   trial2  PEFR2
Before  310 After   299
Before  242 After   201
Before  340 After   232
Before  388 After   312
Before  294 After   221
Before  251 After   256
Before  391 After   327
Before  401 After   331
Before  287 After   231")

在当前格式中,您可以通过执行

来计算之前和之后的平均值
mean(drugs$PEFR1)

mean(drugs$PEFR2)

你可能想到的是这种形状:

drugs2 <- with(drugs,
                data.frame(trial=c(as.character(trial1),
                                   as.character(trial2)),
                           PEFR=c(PEFR1,PEFR2)))
  • 为方便起见,我使用了with() - 这是临时附加数据框的一种方式,因此您可以直接引用其中的变量。)
  • 组合trial1trial2时会有一些陷阱,因为他们被强制使用他们的数字代码,在这两种情况下都是1,除非你使用{{1} } ...
  • 您有要汇总的变量的顺序和要向后分组的变量(您希望按as.character()汇总PEFR,而不是相反)
trial