使用subset()函数计算CO2数据集chilled处理组均值遇问题求助
解决CO2数据集chilled处理组均值计算问题
先给你正确的代码,再拆解你之前的错误:
正确写法
CO2数据集里我们要计算的是uptake列的均值(这是数据集默认的响应变量),正确的代码有两种方式:
方式1:分步操作
# 先筛选出Treatment为chilled的所有数据行 chilled_group <- subset(CO2, Treatment == "chilled") # 计算uptake列的均值 mean(chilled_group$uptake)
方式2:一行完成
mean(subset(CO2, Treatment == "chilled")$uptake)
你之前的错误拆解
mean(subset(data,Treatment=chilled)):- 数据集名写错了,应该是
CO2不是data - 条件判断要用双等号
==,单等号=是赋值符号,不是判断相等的逻辑符 chilled是Treatment的水平值,属于字符型,必须加引号"chilled"- subset返回的是整个数据框,直接用mean会报错,必须指定要计算均值的列(比如
uptake)
- 数据集名写错了,应该是
mean(subset(treatment,chilled)):- subset的第一个参数必须是完整数据集(
CO2),不是treatment这个列名 - 缺少判断条件的逻辑,正确的条件应该是
Treatment == "chilled",只写chilled语法无效
- subset的第一个参数必须是完整数据集(
subset(treatment,chilled):- 第一个参数应该是
CO2,不是treatment列;条件写法错误,没有明确的判断逻辑
- 第一个参数应该是
chilled <- subset(mean,treatment=chilled):- 完全搞反了参数顺序,subset的第一个参数得是数据集,不是
mean函数;语法逻辑全错,根本无法运行
- 完全搞反了参数顺序,subset的第一个参数得是数据集,不是
内容的提问来源于stack exchange,提问作者Emily
相关产品推荐
相关产品推荐

