gpt4 book ai didi

r - 条件均值陈述

转载 作者:行者123 更新时间:2023-12-04 01:58:29 24 4
gpt4 key购买 nike

我有一个名为bwght的数据集,其中包含变量cigs(每天抽烟的雪茄)

当我使用以下方法在数据集cigs中计算bwght的平均值时:mean(bwght$cigs),我得到一个数字2.08。

在样本的1388名妇女中,只有212名吸烟(而1176名妇女不吸烟):
summary(bwght$cigs>0)给出结果:

Mode      FALSE    TRUE    NA's 
logical 1176 212 0

我被要求找出吸烟女性(212岁)中 cigs的平均值。

我很难找到排除不吸烟者= 0的正确语法
我试过了:
  • mean(bwght$cigs| bwght$cigs>0)
  • mean(bwght$cigs>0 | bwght$cigs=TRUE)
  • if (bwght$cigs > 0){
    sum(bwght$cigs)
    }
  • x <-as.numeric(bwght$cigs, rm="0");
    mean(x)

  • 但是似乎没有任何效果!谁能帮帮我吗??

    最佳答案

    如果要排除不吸烟者,则有几种选择。最简单的可能是这样的:

    mean(bwght[bwght$cigs>0,"cigs"])

    对于数据框,第一个变量是行,第二个变量是列。因此,您可以使用 dataframe[1,2]来获得第一行第二列的子集。您也可以在行选择中使用逻辑。通过使用 bwght$cigs>0作为第一个元素,您将子集设置为仅使 cigs不为零的行。

    您的其他服务器由于以下原因而无法正常工作:
    mean(bwght$cigs| bwght$cigs>0)

    这实际上是逻辑上的比较。您要查询 bwght$cigs OR bwght$cigs>0的TRUE/FALSE结果,然后取平均值。我不太确定,但是我认为R甚至不能接受 mean()函数的逻辑类型的数据。
    mean(bwght$cigs>0 | bwght$cigs=TRUE)

    同样的问题。您使用 |符号,该符号返回逻辑,并且R尝试取逻辑的平均值。
    if(bwght$cigs > 0){sum(bwght$cigs)}

    偶然地,您最初是SAS程序员吗?看起来就像我一开始键入的样子。基本上, if()在R中的工作方式与在SAS中不同。在该示例中,您将 bwght$cigs > 0用作if条件,这将不起作用,因为R仅查看bwght $ cigs> 0导致的向量的第一个元素。R处理与SAS不同的循环- checkout lapply之类的函数,轻按,等等。
    x <-as.numeric(bwght$cigs, rm="0")
    mean(x)

    老实说,我不知道会怎么做。如果 rm="0"没有引号可能会起作用...?

    关于r - 条件均值陈述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555179/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com