Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用聚合查找“的函数(平均值)”;所有其他;_R_Aggregate - Fatal编程技术网

R 使用聚合查找“的函数(平均值)”;所有其他;

R 使用聚合查找“的函数(平均值)”;所有其他;,r,aggregate,R,Aggregate,我一直在玩弄aggregate和plyr——搜索了这么多——但似乎没有弄明白这一点 我试图得到给定变量“所有其他”的平均值。因此,我可以使用aggregate获得var在组中每一个变量的平均值——是的,变量是字符,必须转义:-( 我想做的是: 仅-的平均值,然后分别 所有其他变量(/*#)或非--组合的平均值 因此,在下面的示例数据中,-的平均值为2,“所有其他”的平均值为4 真正的数据集要长得多(1000行),更复杂,也更易变,所以单独输入“所有其他”是没有意义的——我认为像~。这样的方法是可

我一直在玩弄
aggregate
plyr
——搜索了这么多——但似乎没有弄明白这一点

我试图得到给定变量“所有其他”的
平均值。因此,我可以使用
aggregate
获得
var
中每一个变量的平均值——是的,变量是字符,必须转义:-(

我想做的是:

  • -
    的平均值,然后分别
  • 所有其他变量(
    /*#
    )或非-
    -
    组合的平均值
  • 因此,在下面的示例数据中,
    -
    的平均值为2,“所有其他”的平均值为4

    真正的数据集要长得多(1000行),更复杂,也更易变,所以单独输入“所有其他”是没有意义的——我认为像
    ~。
    这样的方法是可行的

    group     var
    -         4
    -         0
    -         2
    /         2
    /         5
    *         3
    *         7
    *         3
    #         4
    
    structure(list(group = structure(c(1L, 1L, 1L, 3L, 3L, 2L, 2L, 
    2L), .Label = c("-", "*", "/"), class = "factor"), var = c(4L, 
    0L, 2L, 2L, 5L, 3L, 7L, 3L)), .Names = c("group", "var"), class = "data.frame", row.names = c(NA, 
    -8L))
    
    1)聚合。公式试试:

    aggregate(var ~ group, transform(DF, group = ifelse(group == "-", "-", "other")), mean)
    
    给予:

      group var
    1     -   2
    2 other   4
    
      group var
    1     -   2
    2 other   4
    
    2)aggregate.data.frame或者可以这样写:

    group <- ifelse(DF$group == "-", "-", "other") 
    aggregate(DF["var"], data.frame(group), mean)
    

    这将返回组的平均值“-”


    这将返回除“-”以外的所有内容的平均值

    这将返回除“-”以外各组的平均值


    df1I打算建议
    aggregate(var~group==“-”,DF,mean)
    ,但我也喜欢
    ifelse
    的输出+1.
    mean(df[which(df$group=="-"),]$var)
    [1] 2
    
    mean(df[which(df$group!="-"),]$var)
    [1] 4
    
    df1<-df[which(df$group!="-"),]
    ddply(df1,.(group),summarise,mean=mean(var))
      group     mean
    1     * 4.333333
    2     / 3.500000
    3     # 4.000000