gpt4 book ai didi

r - 如何在R中的其他条件下创建新变量

转载 作者:行者123 更新时间:2023-12-04 08:50:46 24 4
gpt4 key购买 nike

我有以下数据框:

ID   Measurement A      Measurement  B     Date of Measurements A and B   Date of Measurement C
1 23 24 12 16
1 22 23 12 15
1 24 22 12 17
1 21 20 12 11
1 27 29 12 17
这是使用 1 个标识符 (ID) 的示例,实际上我有数千个。
我想创建一个封装的变量

"if this ID's Measurement A OR Measurement B is > xxx, before the date of Measurement C, ON MORE THAN TWO OCCASSIONS, then designatethem a 1 in a new column called new_var".


到目前为止,我删除了所有测量日期 A 和 B > 测量日期 C
measurements <- subset(measurements, dateofmeasurementsAandB < dateofmeasurementC)
然后在 ifelse 语句中添加截止值
measurements$new_var<- ifelse(measurements$measurementA >= xxx | measurements$measurementB >= xxx, 1, 0)
但不能考虑“不止一个场合位”(从示例中可以看出,每个 ID 都有多个行/场合)
任何帮助都会很棒,尤其是如果可以更简单地完成!

最佳答案

如果我不明白你在问什么,我想我会使用 dplyr 的计数功能:

#Starting from your dataframe
library(tidyverse)
df <- measurements %>%
filter(dateofmeasurementsAandB < dateofmeasurementC,
measurements$measurementA >= xxx | measurements$measurementB >= xxx)
这个数据框应该只有你想要的条件,所以现在我们计算它们并过滤结果:
df <- df %>% count(ID) %>% filter(n >= 2)
矢量 df$ID 现在应该只有多次测量过的 ID,然后您可以将这些 ID 反馈到您的 中。尺寸数据框轻松,但我偏爱这个:
measurements$new_var <- 0
measurements[measurements$ID %in% df$ID]$new_var <- 1

关于r - 如何在R中的其他条件下创建新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64107895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com