转换纵向数据以在R中进行事件分析

杰史密斯

我正在尝试重新格式化纵向数据,以进行事件分析。在下面的示例数据中,我只想查找每个ID最早的结果为“ 0”的一周。

我遇到具体问题是如何处理那些不能全部转换为0或全为1或2的患者。在示例数据中,患者的J全为1。

#Sample data
have<-data.frame(patient=rep(LETTERS[1:10], each=9),
                 week=rep(0:8,times=10),
                 result=c(1,0,2,rep(0,6),1,1,2,1,rep(0,5),1,1,rep(0,7),1,rep(0,8),
                          1,1,1,1,2,1,0,0,0,1,1,1,rep(0,6),1,2,1,rep(0,6),1,2,rep(0,7),
                          1,rep(0,8),rep(1,9)))
patient week result
A       0   1
A       1   0
A       2   2
A       3   0
A       4   0
A       5   0
A       6   0
A       7   0
A       8   0
B       0   1
B       1   0
...     .....
J       6   1
J       7   1
J       8   1

我可以使用以下代码来完成相对简单的过程:

want<-aggregate(have$week, by=list(have$patient,have$result), min) want<-want[which(want[2]==0),]

但要意识到如果某人未转换为0,则会将其排除在外(在此示例中,患者J被排除在外)。相反,J应该1在第二列和8第三列中带有一个相反,它当然被省略了

print(want)
Group.1 Group.2 x
A       0       1
B       0       4
C       0       2
D       0       1
E       0       6
F       0       3
G       0       3
H       0       2
I       0       1
#But also need
J       1       8

根据准则张贴在这里,我没有工作,解决这个问题,我能得到什么,我需要非常粗暴:

mins<-aggregate(have$week, by=list(have$patient,have$result), min)
maxs<-aggregate(have$week, by=list(have$patient,have$result), max)
want<-rbind(mins[which(mins[2]==0),],maxs[which(maxs[2]==1&maxs[3]==8),])

这将返回正确的所需数据集,但是编码是糟糕的,而且不可持续,因为我正在处理其他数据集(即,由于必须手动输入maxsp[3]==8所以具有不同时间范围的数据集等)。

有没有更优雅或更系统的方法来解决此数据处理问题?

罗纳克·沙

我们可以编写一个函数来从组中选择一行。

select_row <- function(result, week) {
   if(any(result == 0)) which.max(result == 0) else which.max(week)
}

如果存在该函数,则返回第一个0值的索引,否则返回最大值为的索引week

并将其应用于所有组。

library(dplyr)
have %>% group_by(patient) %>% slice(select_row(result, week))

#  patient  week result
#   <fct>   <int>  <dbl>
# 1 A           1      0
# 2 B           4      0
# 3 C           2      0
# 4 D           1      0
# 5 E           6      0
# 6 F           3      0
# 7 G           3      0
# 8 H           2      0
# 9 I           1      0
#10 J           8      1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何“整理” Quickbooks日记数据以进行R分析

来自分类Dev

如何在 Angular 中进行事件冒泡?

来自分类Dev

在发送数据以在Angular中进行身份验证之前转换为Json

来自分类Dev

在Shiny R中绘制图形;使用重复循环绘制数据以进行自动分析

来自分类Dev

重新排列R中的数据以进行市场篮子分析

来自分类Dev

准备我的数据以在SVM libsvm Matlab中进行训练

来自分类Dev

如何从HTML获取数据以在SQL中进行查询?

来自分类Dev

在原型中进行事件绑定是否明智?为什么会丢失上下文?

来自分类Dev

如何在R中进行时间序列分析,将时间“仓”转换为连续时间?

来自分类Dev

当状态为非数字时,为什么USArrests数据可以在R中进行PCA分析?

来自分类Dev

R,如何在数据帧的循环中进行方差分析?

来自分类Dev

在R中将纵向数据转换为面板数据

来自分类Dev

如何在纵向数据集中进行Winsorize(或移除单变量离群值)

来自分类Dev

如何在纵向数据集中进行Winsorize(或去除单变量离群值)

来自分类Dev

枫将向量转换为数据以进行绘图

来自分类Dev

如何将多个 pdf 转换为一个语料库以在 R 中进行文本分析?

来自分类Dev

如何将一组 Unicode .txt 转换为 ANSI 以在 R 中进行文本分析

来自分类常见问题

使用OOP进行事件冒泡

来自分类Dev

使用JavaScript进行事件调用

来自分类Dev

如何使用SynchronizingObject进行事件调用

来自分类Dev

如何使用 JournaledGrain 进行事件溯源

来自分类Dev

如何将数据从行转换为特定列并在R中进行计数?

来自分类Dev

使用R包“ Erer”中的EvReturn函数进行事件研究的循环

来自分类Dev

使用 Python(或 R)将文本数据提取到有意义的表中进行分析

来自分类Dev

使用ade4在R中进行判别分析

来自分类Dev

如何在R中进行边际模型分析?

来自分类Dev

在C ++中进行内联汇编以进行数据转换

来自分类Dev

我是否必须删除主键或重新加载表数据以在MySQL InnoDB中进行分区?

来自分类Dev

如何从控制器访问模型数据以在Ember的视图中进行渲染?

Related 相关文章

  1. 1

    如何“整理” Quickbooks日记数据以进行R分析

  2. 2

    如何在 Angular 中进行事件冒泡?

  3. 3

    在发送数据以在Angular中进行身份验证之前转换为Json

  4. 4

    在Shiny R中绘制图形;使用重复循环绘制数据以进行自动分析

  5. 5

    重新排列R中的数据以进行市场篮子分析

  6. 6

    准备我的数据以在SVM libsvm Matlab中进行训练

  7. 7

    如何从HTML获取数据以在SQL中进行查询?

  8. 8

    在原型中进行事件绑定是否明智?为什么会丢失上下文?

  9. 9

    如何在R中进行时间序列分析,将时间“仓”转换为连续时间?

  10. 10

    当状态为非数字时,为什么USArrests数据可以在R中进行PCA分析?

  11. 11

    R,如何在数据帧的循环中进行方差分析?

  12. 12

    在R中将纵向数据转换为面板数据

  13. 13

    如何在纵向数据集中进行Winsorize(或移除单变量离群值)

  14. 14

    如何在纵向数据集中进行Winsorize(或去除单变量离群值)

  15. 15

    枫将向量转换为数据以进行绘图

  16. 16

    如何将多个 pdf 转换为一个语料库以在 R 中进行文本分析?

  17. 17

    如何将一组 Unicode .txt 转换为 ANSI 以在 R 中进行文本分析

  18. 18

    使用OOP进行事件冒泡

  19. 19

    使用JavaScript进行事件调用

  20. 20

    如何使用SynchronizingObject进行事件调用

  21. 21

    如何使用 JournaledGrain 进行事件溯源

  22. 22

    如何将数据从行转换为特定列并在R中进行计数?

  23. 23

    使用R包“ Erer”中的EvReturn函数进行事件研究的循环

  24. 24

    使用 Python(或 R)将文本数据提取到有意义的表中进行分析

  25. 25

    使用ade4在R中进行判别分析

  26. 26

    如何在R中进行边际模型分析?

  27. 27

    在C ++中进行内联汇编以进行数据转换

  28. 28

    我是否必须删除主键或重新加载表数据以在MySQL InnoDB中进行分区?

  29. 29

    如何从控制器访问模型数据以在Ember的视图中进行渲染?

热门标签

归档