【发布时间】:2021-10-13 04:18:18
【问题描述】:
我有许多数据框都包含在一个名为 1a1 的列表中,列表中的名称是收集数据的日期,例如
names(1a1)
[1] "Jan4" "Jan5" "Jan6" "Jan7" "Jan8" "Jan9" "Jan10"
列表中的所有数据帧都采用相同的格式
例如
dput(Jan4)
structure(list(Species = c("bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "bluti", "bluti", "bluti",
"bluti", "bluti", "bluti", "bluti", "greti", "greti", "greti",
"greti", "greti", "greti", "greti", "greti", "greti", "greti",
"greti", "greti", "greti", "greti", "greti", "greti", "greti",
"greti", "greti", "greti", "greti", "greti", "greti", "greti",
"greti", "greti", "greti", "greti", "greti", "greti", "greti",
"greti", "greti", "greti", "greti", "greti", "greti", "greti",
"greti", "greti", "greti", "greti"), Pit.tag = c("01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD77C", "01103FD77C", "01103FD77C", "01103FD77C", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD77C", "01103FD77C", "01103FD77C",
"01103FD77C", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF",
"01103FD6EF", "01103FD6EF", "01103FD6EF", "01103FD6EF", "01103F9F29",
"01103F9F29", "01103F9F29", "01103F9F29", "0700EDADB8", "0700EDADB8",
"0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8",
"0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8",
"0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8",
"0700EDADB8", "0700EDADB8", "0700EDADB8", "01103F9F29", "01103F9F29",
"01103F9F29", "01103F9F29", "0700EDADB8", "0700EDADB8", "0700EDADB8",
"0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8", "0700EDADB8",
"0700EDADB8", "0700EDADB8", "01103F9F29", "01103F9F29", "01103F9F29",
"01103F9F29"), Date = c("04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021",
"04-01-2021", "04-01-2021", "04-01-2021", "04-01-2021"), Time = c("08:01:41",
"08:01:42", "08:01:42", "08:03:09", "08:03:09", "08:03:10", "08:02:57",
"08:02:57", "08:02:58", "08:03:36", "08:01:41", "08:01:42", "08:01:42",
"08:03:09", "08:03:09", "08:03:10", "08:01:41", "08:01:42", "08:01:42",
"08:03:09", "08:03:09", "08:03:10", "08:01:41", "08:01:42", "08:01:42",
"08:03:09", "08:03:09", "08:03:10", "08:02:57", "08:02:57", "08:02:58",
"08:03:36", "08:01:41", "08:01:42", "08:01:42", "08:03:09", "08:03:09",
"08:03:10", "08:01:41", "08:01:42", "08:01:42", "08:03:09", "08:03:09",
"08:03:10", "08:01:41", "08:01:42", "08:01:42", "08:03:09", "08:03:09",
"08:03:10", "08:02:26", "08:02:26", "08:03:37", "08:03:38", "08:00:43",
"08:00:44", "08:00:44", "08:01:39", "08:01:39", "08:01:40", "08:01:40",
"08:02:54", "08:02:54", "08:02:55", "08:00:43", "08:00:44", "08:00:44",
"08:01:39", "08:01:39", "08:01:40", "08:01:40", "08:02:54", "08:02:54",
"08:02:55", "08:02:26", "08:02:26", "08:03:37", "08:03:38", "08:00:43",
"08:00:44", "08:00:44", "08:01:39", "08:01:39", "08:01:40", "08:01:40",
"08:02:54", "08:02:54", "08:02:55", "08:02:26", "08:02:26", "08:03:37",
"08:03:38")), row.names = c(NA, -92L), class = "data.frame")
我想做的是创建一个新的数据框来总结这些数据,我可以看到有多少次单独的Pit.tag 被看到(创建一个名为No_of_visits 的新变量)以及它属于哪个Species
例如
Pit.tag Species No_of_visits
01103FD6EF bluti 47
我可以通过使用变体来获得我需要的大部分信息
Visitsbypit<-sapply(tapply(1a1$`Jan4`$Species, 1a1$`Jan4`$Pit.tag, length), unique)
Vistsbyspecies<-sapply(tapply(1a1$`Jan4`$Pit.tag, 1a1$`Jan4`$Species, length), unique)
Visitsbypit
01103F9776 01103FA8DD 01103FC9DE
10 133 255
Vistsbyspecies
greti bluti
10 388
注意:上面的这些数据与我在这里提供的数据不匹配,它们来自另一个数据框
这也没有真正让我明白我想要什么,所以Visitsbyspecies 只是每个物种的总访问量,与Pit.tag 记录无关。我想将Visitsbypit中的Pit.tag记录链接到它们对应的物种
但我无法进行下一次飞跃并将这些信息放在一起。
我还认为必须有一种更好的方法可以在整个列表中完成此操作,而不必指定例如1a1$`Jan4`$Species 在我看来,这违背了将数据框放在列表中并使用 sapply 和 tapply 的目的
【问题讨论】:
-
这是一个疯狂的猜测,因为我不确定我是否完全理解这个问题:你在寻找
table函数吗?你可以这样使用:table(Jan4$Species, Jan4$Pit.tag)? -
嗯,不是我想要的,但知道这一点还是很有用的。我的问题还不够清楚吗?我确实认为我已经正确解释了它。如果不是很抱歉,我会再看一遍,看看我是否可以澄清。