Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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_Crosstab_Summary - Fatal编程技术网

R按三个变量分组汇总数据

R按三个变量分组汇总数据,r,crosstab,summary,R,Crosstab,Summary,我想通过移植实验数据总结得出a)每个位置、底物和复制组合的总个体数和b)按性别划分的总个体数。我提供了一个简化的数据集,每个站点、基质和复制组合有两个记录。我知道如何在R中创建列联表,但不确定如何创建一个表(dataframe),在该表中我总结了三个变量的数据 Transplant.Test <- structure(list(Location = c("Kampinge", "Kampinge", "Kampinge", "Kampinge",

我想通过移植实验数据总结得出a)每个位置、底物和复制组合的总个体数和b)按性别划分的总个体数。我提供了一个简化的数据集,每个站点、基质和复制组合有两个记录。我知道如何在R中创建列联表,但不确定如何创建一个表(dataframe),在该表中我总结了三个变量的数据

Transplant.Test <- structure(list(Location = c("Kampinge", "Kampinge", "Kampinge", "Kampinge",
                                               "Kampinge", "Kampinge", "Kampinge", "Kampinge",
                                               "Kampinge", "Kampinge", "Kampinge", "Kampinge",
                                               "Kaseberga", "Kaseberga", "Kaseberga", 
                                               "Kaseberga", "Kaseberga", "Kaseberga", 
                                               "Kaseberga", "Kaseberga", "Kaseberga", 
                                               "Kaseberga", "Kaseberga", "Kaseberga"),
                                  Substrate = c("Kampinge", "Kampinge", "Kampinge", "Kampinge",
                                                "Kampinge", "Kampinge", "Kaseberga","Kaseberga",
                                                "Kaseberga", "Kaseberga", "Kaseberga",
                                                "Kaseberga", "Kampinge", "Kampinge",
                                                "Kampinge", "Kampinge", "Kampinge", "Kampinge",
                                                "Kaseberga", "Kaseberga", "Kaseberga",
                                                "Kaseberga", "Kaseberga", "Kaseberga"),
                                 Replicate = c(1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 3L, 3L,
                                               1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 3L, 3L), 
                                 Sex = c("m", "m", "m", "m", "m", "m", "m", "m", "m", "m", "m",
                                         "m", "m", "f", "f", "f", "m", "f", "f", "f", "f", "f",
                                         "m", "m")), 
                                .Names = c("Location", "Substrate", "Replicate", "Sex"), 
                                class = "data.frame", row.names = c(NA, -24L))

Transplant.Test您可能对“重塑2”中的
dcast
感兴趣

请尝试以下操作:

library(reshape2)
dcast(Transplant.Test, Location + Substrate + Replicate ~ "count", 
      value.var="Sex", fun.aggregate=length)
#     Location Substrate Replicate count
# 1   Kampinge  Kampinge         1     2
# 2   Kampinge  Kampinge         2     2
# 3   Kampinge  Kampinge         3     2
# 4   Kampinge Kaseberga         1     2
# 5   Kampinge Kaseberga         2     2
# 6   Kampinge Kaseberga         3     2
# 7  Kaseberga  Kampinge         1     2
# 8  Kaseberga  Kampinge         2     2
# 9  Kaseberga  Kampinge         3     2
# 10 Kaseberga Kaseberga         1     2
# 11 Kaseberga Kaseberga         2     2
# 12 Kaseberga Kaseberga         3     2

dcast(Transplant.Test, Location + Substrate + Replicate ~ Sex, 
      value.var="Sex", fun.aggregate=length)
#     Location Substrate Replicate f m
# 1   Kampinge  Kampinge         1 0 2
# 2   Kampinge  Kampinge         2 0 2
# 3   Kampinge  Kampinge         3 0 2
# 4   Kampinge Kaseberga         1 0 2
# 5   Kampinge Kaseberga         2 0 2
# 6   Kampinge Kaseberga         3 0 2
# 7  Kaseberga  Kampinge         1 1 1
# 8  Kaseberga  Kampinge         2 2 0
# 9  Kaseberga  Kampinge         3 1 1
# 10 Kaseberga Kaseberga         1 2 0
# 11 Kaseberga Kaseberga         2 2 0
# 12 Kaseberga Kaseberga         3 0 2
require(plyr)


Table_A你能举一个预期结果的例子吗?第一个问题听起来像你只是想要
data.frame(table(Transplant.Test[1:3])
,还是我误解了这个问题?还是你在寻找
ftable
ftable(Transplant.Test,row.vars=c(“位置”、“基质”、“复制”),col.vars=“性别”)
您的第一个解决方案工作正常,但第二个解决方案需要额外的步骤才能获得每种性别的列。