【问题标题】:filter id in cluster according another variable in R根据 R 中的另一个变量过滤集群中的 id
【发布时间】:2017-12-26 10:22:16
【问题描述】:

我有一个包含 100 名患者的数据,每个患者的值都是 7 天(1 到 7 天)。如何仅在第 1 天根据另一个变量仅选择患者?

df <- data.frame(id = c(1, 1, 1, 2, 2, 2),
         day = c(1, 2, 3, 1, 2, 3),
         RRT = c(0, 1, 0, 1, 0, 0))

我只想选择在day = 1 具有RRT=0 的ID。

【问题讨论】:

  • 固定格式以提高可读性。
  • 您能否根据您的样本数据向我们展示所需的输出? (顺便说一句-询问多个question 可能无济于事。您可能需要参考this 链接并正确更新您的问题)
  • 所需的输出 id=c(1,1,1), day c(1,2,3), RRT=c(0,1,0) 和所有其他列空格省略。

标签: r project


【解决方案1】:

使用dplyr时:

library(dplyr)
df %>% 
  group_by(id) %>% 
  filter(day == 1 & RRT == 0) %>% 
  select(id)

或基础R:

df[df$day == 1 & df$RRT ==0,"id"]

【讨论】:

  • 谢谢,第二个选项给了我所有的ID。如何仅使用这些 ID 过滤我的所有表格?我有超过 45000 个不同的 ID。最佳
【解决方案2】:

你可以在base R中使用subset函数:

subset(df,RRT==0&day==1)

如果您只需要id 列,您可以选择

with(df,id[RRT==0&day==1])

【讨论】:

  • 但这将在第 2 天后的第一列中选​​择在第 1 天接受 RRT 的个人。
  • 这给出了一个数据框,而不是一个向量,它不能给出除 day==1 之外的任何一天
猜你喜欢
  • 1970-01-01
  • 2021-01-21
  • 2018-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 2019-06-12
  • 1970-01-01
相关资源
最近更新 更多