我需要4b的帮助
'Warpbreaks'是R中的内置数据集。使用函数数据(warpbreaks)加载它。它由每个织机的经纱断裂次数组成,其中织机对应于固定长度的纱线。它有三个变量,即断裂,羊毛和张力。
湾对于“AM.warpbreaks”数据集,计算中断值不超过30 的观察值的中断和变量的平均值和标准差。
data(warpbreaks)
warpbreaks <- data.frame(warpbreaks)
AM.warpbreaks <- subset(warpbreaks, wool=="A" & tension=="M")
mean(AM.warpbreaks<=30)
sd(AM.warpbreaks<=30)
这就是我理解这个问题并输入最后两行的代码。但是,当前3行成功运行时,我无法运行最后两行。谁能告诉我这里的错误是什么? 谢谢! :)
答案 0 :(得分:1)
另一种方法: 这样你就不会生成一堆数据集,然后继续记住哪个是哪个。这更像是个人的事情。
data(warpbreaks)
mean(AM.warpbreaks[which(AM.warpbreaks$breaks<=30),"breaks"])
sd(AM.warpbreaks[which(AM.warpbreaks$breaks<=30),"breaks"])
答案 1 :(得分:0)
您的代码存在两个问题。第一个是您要比较30,但是您正在查看整个数据框,而不仅仅是“中断”列。
AM.warpbreaks$breaks <= 30
是一个表达中断小于30的表达式。
但是mean(AM.warpbreaks$breaks <= 30)
也不会给出你想要的答案,因为R会将内部表达式计算为布尔值为TRUE / FALSE的向量,表示该中断是否小于30。
通常,您只想为此类分析采用另一个子集。
AM.lt.30 <- subset(AM.warpbreaks, breaks <= 30)
mean(AM.lt.30$breaks)
sd(AM.lt.30$breaks)