如何从基于年份的大数据集中获取多个矩阵

2023-12-15

在我开始之前,这里是我正在处理的数据的一小部分,我提前为它太大而道歉(注意这只是一个非常大的数据集的前 30 行:

mydata<-structure(list(ParkName = c("SEP", "CSSP", 
                        "SEP", "ONF", "SEP", 
                        "ONF", "SEP", 
                        "CSSP", "ONF", 
                        "SEP", "CSSP", 
                        "PPRSP", "PPRSP", 
                        "SEP", "ONF", 
                        "PPRSP", "ONF", 
                        "SEP", "SEP", 
                        "ONF"), 
           Year = c(2001, 2005, 1998,2011, 1991, 1991, 1991, 1991, 1991, 1992, 1992, 1992, 1992, 1992,
                                          1992, 1992, 1992, 1993, 1994, 1994), 
           LatinName = c("Mola mola", "Clarias batrachus", "Lithobates catesbeianus", "Rana catesbeiana", "Rana catesbeiana", 
                         "Rana yellowis", "Rana catesbeiana", "Solenopsis sp1","Rana catesbeiana", "Rana catesbeiana",
                         "Pratensis", "Rana catesbeiana",  "Rana catesbeiana", "sp2", "Orchidaceae",
                         "Rana catesbeiana","Formica", "Rana catesbeiana", "Rana catesbeiana", "sp2"), 
           NumTotal = c(1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 100, 2, 1, 2)), Names = c("ParkName", "Year", "LatinName", 
                                                                                                                      "NumTotal"),
      row.names = c(NA, -20L), class = c("tbl_df", "tbl",  "data.frame"))

该数据集代表了多年来不同公园中不同物种的丰富度。我本质上想要用这些数据做的是获取记录数据的每年的物种 X 公园矩阵,然后使用“vegan”包来计算每年每个公园的多样性指数。显然,这不是一个平衡的数据集,因为并非每个公园每年都会记录物种丰度等。现在我意识到要做到这一点,我需要运行循环。我需要获取每年的公园列表以及每年每个公园的物种及其丰度列表,以便创建这些矩阵。在运行循环方面我并不是最擅长的,这个任务让我感到困惑。例如,我在数据集中创建了一个单独的年份向量。然后,我创建了一个名为“parkbyyear”的空列表,以从主数据框中按年份填充公园列表

year<-as.vector(unique(data[,3]))
parkbyyear<-NULL

for (i in 1:year) {
  parkbyyear[i]<- mydata[mydata$ParkName[year == "i"]
}

循环无法运行。 任何帮助,将不胜感激。


只需使用by按所需因子对数据帧进行切片并运行向量返回等操作:

parkbyyear_list <- by(mydata, mydata$Year, FUN=function(df) df$ParkName)

parkbyyear_list
# mydata$Year: 1991
# [1] "SEP"  "ONF"  "SEP"  "CSSP" "ONF" 
# ---------------------------------------------------------------------------
# mydata$Year: 1992
# [1] "SEP"   "CSSP"  "PPRSP" "PPRSP" "SEP"   "ONF"   "PPRSP" "ONF"  
# --------------------------------------------------------------------------- 
# mydata$Year: 1993
# [1] "SEP"
# ---------------------------------------------------------------------------
# mydata$Year: 1994
# [1] "SEP" "ONF"
# ---------------------------------------------------------------------------
# mydata$Year: 1998
# [1] "SEP"
# ---------------------------------------------------------------------------
# mydata$Year: 2001
# [1] "SEP"
# ---------------------------------------------------------------------------
# mydata$Year: 2005
# [1] "CSSP"
# ---------------------------------------------------------------------------
# mydata$Year: 2011
# [1] "ONF"

对于子集数据帧的列表Year,只需使用split (or by again):

dfList <- split(mydata, mydata$Year)
# dfList <- by(mydata, mydata$Year, FUN=function(df) df)   # SIMILAR CALL

dfList

# $`1991`
#   ParkName Year        LatinName NumTotal
# 5      SEP 1991 Rana catesbeiana        2
# 6      ONF 1991    Rana yellowis        1
# 7      SEP 1991 Rana catesbeiana        1
# 8     CSSP 1991   Solenopsis sp1        1
# 9      ONF 1991 Rana catesbeiana        1

# $`1992`
#    ParkName Year        LatinName NumTotal
# 10      SEP 1992 Rana catesbeiana        1
# 11     CSSP 1992        Pratensis        1
# 12    PPRSP 1992 Rana catesbeiana        1
# 13    PPRSP 1992 Rana catesbeiana        1
# 14      SEP 1992              sp2        1
# 15      ONF 1992      Orchidaceae        1
# 16    PPRSP 1992 Rana catesbeiana        1
# 17      ONF 1992          Formica      100
# 
# $`1993`
#    ParkName Year        LatinName NumTotal
# 18      SEP 1993 Rana catesbeiana        2
# 
# $`1994`
#    ParkName Year        LatinName NumTotal
# 19      SEP 1994 Rana catesbeiana        1
# 20      ONF 1994              sp2        2
# 
# $`1998`
#   ParkName Year               LatinName NumTotal
# 3      SEP 1998 Lithobates catesbeianus        1
# 
# $`2001`
#   ParkName Year LatinName NumTotal
# 1      SEP 2001 Mola mola        1
# 
# $`2005`
#   ParkName Year         LatinName NumTotal
# 2     CSSP 2005 Clarias batrachus        1
# 
# $`2011`
#   ParkName Year        LatinName NumTotal
# 4      ONF 2011 Rana catesbeiana        1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从基于年份的大数据集中获取多个矩阵 的相关文章

随机推荐

  • SceneKit:内存过多

    我已经没有想法了 SceneKit 正在堆积内存 而我才刚刚开始 我正在显示SNCNodes它们存储在数组中 这样我就可以分离分子的组成部分以进行动画 这些树模型分子我最终可能会展示 50 个 比如说每 章 一个 问题是 当我转到另一章时
  • 与“PropTypes.element”相对应的“defaultProp”的正确值是什么?

    我有一个组件 我希望接受另一个组件作为道具 并渲染它 我希望传递的组件是可选的 并且在这种情况下不渲染任何内容 下面的代码可以完美运行 const Component Inner gt div div
  • 有没有办法生成单元测试来测试我的语法

    我使用 antlr4 创建了语法 但我想测试稳健性有没有自动工具或快速完成此操作的好方法 谢谢 由于很难找到 ANTLR 的真正单元测试 我写了两篇关于它的文章 Lexer 的单元测试 解析器的单元测试 A 词法分析测试检查给定文本是否被读
  • 如何使 ImageButtons 边界环绕图像?

    我正在为 Android 应用程序制作 GUI 该 GUI 包含四个方向ImageButtons 看下图 但是当试图做到这一点时总是失败 因为为每个图像保留了一个正方形 这就是我所达到的 那是我的XML code
  • 我现在可以将使用 WatchKit 的应用程序上传到 App Store 吗?

    我制作了一个应用程序 包括一个iOS应用程序和一个WatchKit应用程序 每个部分都可以独立运行 我现在可以将此应用程序上传到 App Store 以便在发布时可以在 Apple Watch 上使用吗 还是必须等待 如果答案是肯定的 我是
  • 如何将 CreateObject("Wscript.shell") 转换为 C# [重复]

    这个问题在这里已经有答案了 我怎样才能用 C 翻译这个 Set WshShell WScript CreateObject WScript Shell 谢谢 这个用在什么场合呢 还有我必须在 C 中包含什么库才能工作 使用用于脚本编写的 S
  • 如何在 iPhone 的图像上添加文字?

    我需要在 iPhone 中将文本放在图像上 它就像 Eurosport iPhone 应用程序 source mzstatic com 以同样的方式 我需要在我的应用程序中添加文本 我怎样才能做到这一点 Thanks 我找到了两种方法 1
  • 我可以使用 WinApi Deploy Cmd 在电脑上安装、更新吗

    我的 appx 文件安装在文件夹中 我可以通过双击该文件来安装它 但我正在寻找一种使用 WinAppDeployCmd 进行安装和更新过程来安装它的方法 WinAppDeployCmd install file C release file
  • Hadoop:JPS 找不到已安装的 Java

    我的配置是 hduser worker1 usr local hadoop conf jps The program jps can be found in the following packages openjdk 6 jdk open
  • 如何使用外部 JSON...?

    花了几个小时试图解决这个问题 但我无法弄清楚出了什么问题 我想做的就是加载这个 https recruit zoho com ats EmbedResult hr jodigest 2cV Sr2As6VxhLMxQGuTNij g Fb3
  • 通过 cron 执行的 Google Cloud SDK 代码

    我正在尝试实现一个自动代码来通过 Crontab 关闭和启动我的 Google Cloud 帐户中的 VM 实例 操作系统是 Ubuntu 12 lts 并安装了 Google 服务帐户 因此它可以处理我的 Google 云帐户上的读 写
  • 如何使用tensorflow进行文本分类?

    我是张量流和机器学习的新手 我在编写张量流代码时遇到问题 该代码的文本分类类似于我尝试使用 sklearn 库进行的文本分类 我在对数据集进行矢量化并向张量流层提供输入方面面临着重大问题 我确实记得对标签进行了一次热编码 但前面的张量流层不
  • Twitter 模块 python 'module' 对象没有属性 Oauth

    我正在尝试遵循这个基本示例here Code import twitter XXX Go to http dev twitter com apps new to create an app and get values for these
  • 随机化神经网络输入顺序的影响

    在我的高级算法和数据结构课程中 我的教授要求我们选择任何我们感兴趣的主题 他还告诉我们要研究它并尝试实施解决方案 我选择神经网络是因为它是我长期以来想学习的东西 我已经能够使用神经网络实现 AND OR 和 XOR 该神经网络的神经元使用阶
  • 共享变量的过时值

    在阅读实践中的并发性时 我读到 NoVisibility展示了一种不充分的方法 同步程序可能会导致令人惊讶的结果 陈旧的数据 当 的时候 读者线程检查ready 它可能会看到一个过时的值 除非 每次访问变量时都会使用同步 这是 可能会看到该
  • 分离数据框列中的值并融化

    我有一个数据框 我想在其中分隔 Client ID 列中的值并融化 因此每一行都包含一个 Client ID 以及相应的 Account Name 和所有者 gt head df Account Owner Account Name Cli
  • C++ 将带有分隔符的文本文件读取到结构数组中

    我正在尝试从格式类似于此的文本文件中读取数据 knife object 0 bag object 15 kitchen room 400 放入由结构体组成的数组中 这是我到目前为止所拥有的 但它只读取第一个元素然后返回垃圾 include
  • 提供 SOAP/XML + REST/JSON 的最佳方式是什么?

    我正在创建一个通用 Web 服务 该服务可能有许多不同的客户端 其中一些我目前无法预料 我已经有了一个很好的 Java 服务 API 并且希望在此基础上提供一个 Web 服务外观 SOAP 与 REST 争论的双方都有很大的争论 这让我想知
  • 数组中的随机数而不连续两次重复相同的数字?

    我正在使用 Swift 和 SpriteKit 制作一个游戏 其中我根据数组将对象移动到随机位置 由 CGPoints 组成的数组 let easyArray CGPointMake 0 0 CGPointMake 126 6 0 CGPo
  • 如何从基于年份的大数据集中获取多个矩阵

    在我开始之前 这里是我正在处理的数据的一小部分 我提前为它太大而道歉 注意这只是一个非常大的数据集的前 30 行 mydata lt structure list ParkName c SEP CSSP SEP ONF SEP ONF SE