首先,我需要解释一下,我已经对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友好提供的代码时。所以每次尝试时我都会遇到不同的错误 - 这肯定是我做错了。
希望我已正确格式化并包含您需要的所有内容。谢谢:))
答案 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()
- 这是临时附加数据框的一种方式,因此您可以直接引用其中的变量。)trial1
和trial2
时会有一些陷阱,因为他们被强制使用他们的数字代码,在这两种情况下都是1,除非你使用{{1} } ... as.character()
汇总PEFR
,而不是相反)trial