如何获得后续观察值(国家年)之间的差异?

2024-03-22

假设我有 5 个国家/地区 10 年内的分数,例如:

mydata<-1:3
mydata<-expand.grid(
country=c('A', 'B', 'C', 'D', 'E'),
year=c('1980','1981','1982','1983','1984','1985','1986','1987','1988','1989'))
mydata$score=sapply(runif(50,0,2), function(x) {round(x,4)})

library(reshape)
mydata<-reshape(mydata, v.names="score", idvar="year", timevar="country", direction="wide")

> head(mydata)
   year score.A score.B score.C score.D score.E
1  1980  1.0538  1.6921  1.3165  1.7434  1.9687
6  1981  1.4773  1.6479  0.3135  0.6172  0.7704
11 1982  0.8748  1.3704  0.2788  1.6306  1.7237
16 1983  1.1224  1.1340  1.7684  1.3352  0.4317
21 1984  1.5496  1.8706  1.4641  0.5313  0.8590
26 1985  1.7715  1.8953  0.6230  0.3580  1.6313

现在,我想创建一个新的变量“period”,如果下一年的分数与前一年的分数有 +/- 0.5 的差异,则该变量为 1;如果情况不成立,则该变量为 0。我想为所有 5 个国家这样做。如果能够识别 period = 1 的国家/地区年份并将此信息显示在表格中,那就太好了。

> head(mydata)
   year score.A score.B score.C score.D score.E  period.A  period.B ...
1  1980  1.0538  1.6921  1.3165  1.7434  1.9687   NA         NA
6  1981  1.4773  1.6479  0.3135  0.6172  0.7704   0          ....
11 1982  0.8748  1.3704  0.2788  1.6306  1.7237   1
16 1983  1.1224  1.1340  1.7684  1.3352  0.4317   0
21 1984  1.5496  1.8706  1.4641  0.5313  0.8590   0
26 1985  1.7715  1.8953  0.6230  0.3580  1.6313   0

我非常希望这个要求不过分。我尝试过dist in the library(proxy)但我不知道如何将函数限制为观察对而不是整行。太感谢了!!


这个用的是diff and lapply:

score.cols  <- grep("score", colnames(mydata), value=TRUE)
period.cols <- gsub("score", "period", score.cols)
compute.period <- function(x)as.integer(c(NA, abs(diff(x)) > 0.5))
cbind(mydata, `names<-`(lapply(mydata[score.cols], compute.period), period.cols))

Edit:更明显的是(今天早上发布的其他问题),也许您没有使用正确的数据结构。相反,我建议您对原始(重塑之前)数据进行工作:

period.fun <- function(x)as.integer(c(NA, abs(diff(x) > 0.5)))
mydata <- within(mydata, period <- ave(score, country, FUN = period.fun))

只有这样你才会重塑mydata得到它的最终形式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得后续观察值(国家年)之间的差异? 的相关文章

随机推荐

  • 内存映射文件可以有多大?

    什么限制了内存映射文件的大小 我知道它不能大于未分配地址空间的最大连续块 并且应该有足够的可用磁盘空间 但还有其他限制吗 You re being too conservative A memory mapped file can be l
  • 如何在 Python 中使用“打开方式”功能?

    我目前正在使用一个包含以下代码的 python 脚本 它打开一个包含 JSON 文本的文件并从中确定一个值 browseFiles def browseFiles global fileName fileName filedialog as
  • 将数据网格设置为每页仅显示 5 行

    我正在使用 DOJO 进行数据网格演示 div div 但问题是 grid log 每页不只显示 5 行 这个标签有什么问题吗 为什么忽略 rowsPerPage 5 看起来 rowsPerPage 值不是 查看 的页面 而是 虚拟 页面
  • 如何从 Perl 将输入传送到 Java 命令?

    我需要通过 Java 程序运行一个字符串 然后检索输出 Java 程序通过标准输入接受字符串 以下作品 my output echo string java jar java program jar 有一个问题 string可以是任何东西
  • 在Python中将for循环转换为while循环

    我正在努力寻找一种有效的方法来转换这些for循环到一个工作集while循环 有什么建议么 我用的是2 7 def printTTriangle height for row in range 1 height 1 print row T s
  • 当选项卡控件有太多选项卡时,WS_EX_COMPOSITED 会导致整个应用程序闪烁/微光

    为了解决闪烁问题 我求助于使用WS EX COMPOSITED在 winforms 应用程序中 这可以完美地工作 直到选项卡控件获得如此多的选项卡以至于它创建了 滚动箭头 此时 我的整个应用程序看起来就像不断重绘 到处都在闪烁 为了看看这是
  • 将 null 分配给角度 4 中的接口

    我有一个 Angular4 界面 interface StatusDetail statusName string name string 我已经给它分配了一些值 比如 角度分量 export class EditComponent imp
  • 如何在 Rust 中指定枚举的基础类型? [复制]

    这个问题在这里已经有答案了 给定一个带有一些非类型化值的简单枚举 该枚举的大小可能需要使用比默认值更小的整数类型 例如 这提供了将枚举存储在数组中的能力u8 enum MyEnum A 0 B C 可以使用u8数组并将它们与一些常量进行比较
  • glassfish 是否支持 jvm 参数中的密码别名?

    我正在尝试使用别名密码作为 jvm arg 但别名密码似乎没有提供给 Web 应用程序 这是我的domain xml 配置
  • 如何在 Visual Studio 中从搜索中排除 .svn 目录?

    我必须 查找 项目的子文件夹 因为整个项目非常大 搜索时间太长 我还安装了 AnkhSVN 想知道插件中的设置是否也有帮助 如果您使用 在文件中查找 而不是标准搜索 则可以在子文件夹中搜索指定的文件类型 但是 使用 Ultrafind 附加
  • Eloquent ORM 的自定义软删除列和值

    我正在重写 REST 服务 我决定使用 Slim Framework 并且我正在使用 Eloquent ORM 因为它最适合我 以前我已经用一列完成了软删除deleted并将其设置为 1 或 0 以表示是否删除 使用 Eloquent 它为
  • [A]类型无法转换为[B]匹配程序集版本的类型

    就在最近 我开始收到这个奇怪的错误 这只是设计器中的问题 应用程序运行没有问题 我试过了 清除影子缓存 删除 bin obj 文件夹 重建解决方案 删除并重新添加提到的程序集并再次执行上述所有操作 这是完整的错误 A MahApps Met
  • 在 Eclipse 中查找重写方法的实例

    假设我有以下内容 public class TextField private String value public String getValue return value And public class TextField2 ext
  • ASP.NET Core 中应用程序启动逻辑放在哪里

    我想使用 ASP NET Core 2 1 创建一个 Web 服务 该服务在应用程序启动时检查与数据库的连接是否正常 然后在数据库中准备一些数据 检查循环运行 直到连接成功或用户按 Ctrl C IApplicationLifetime 重
  • 面临错误问题:在项目输出中找不到指定的 EntryPointExe ''

    我正在使用 VS2022 17 5 3 和 WPF App net7 0 我正在构建一个要在 Microsoft 商店中发布的应用程序 我遇到错误 在项目输出中找不到指定的 EntryPointExe 我搜索了很多导致此错误的原因 但失败了
  • MSCRM Web 服务是否支持数据库事务?

    人们会假设任何基于网络的数据应用程序数据库事务都是设计的一个组成部分 环顾 CrmService 我找不到任何表明事务性 CRUD 可用的信息 MSCRM 是否不支持 实现此功能 如果是 而我错过了 有人可以指出我正确的方向吗 我担心在我编
  • HAX 内核模块未安装

    我刚刚从官方 android 网站下载了最新的 android studio 并安装了它 但我收到此错误 而不是使用 Intel X 86 仿真器加速器 什么可能导致此错误 emulator ERROR x86 emulation curr
  • 发现 Control() 不起作用

    我在按钮单击事件中创建了 5 个文本框 当单击动态生成的按钮时 我必须获取文本框中的值 protected void Button1 Click object sender EventArgs e for int i 0 i lt 5 i
  • 如何在Google colab中访问上传的文件

    我是 python 新手 我使用Google Colab 我上传了一个train data npy进入google Colab 然后我想使用它 根据这个链接如何在 Google Colaboratory 中导入并读取 shelve 或 Nu
  • 如何获得后续观察值(国家年)之间的差异?

    假设我有 5 个国家 地区 10 年内的分数 例如 mydata lt 1 3 mydata lt expand grid country c A B C D E year c 1980 1981 1982 1983 1984 1985 1