我在 R 中使用长格式数据文件,其中包含按参与者 ID 分组的三个时间点上的性别认同。
示例文件在这里:
df <- data.frame(id = as.factor(c(1,1,1,2,2,3,4,4,5,5,5,6,6,6)),
timepoint = c(1,2,3,1,2,1,1,2,1,2,3,1,2,3),
gender = as.factor(c("Male", "Male", "Non-binary", "Female", "Female", "Male", "Non-binary", "NA", "Female", "NA", "NA", "Male", "NA", "Female")))
df
我想创建一个新变量,随着时间的推移梳理性别(忽略 NAs)并插入:如果一致则重复出现性别,或者如果不一致则插入“性别变化”。
即。我希望它看起来像这样:
id timepoint gender genderchange
1 1 1 Male Gender change
2 1 2 Male Gender change
3 1 3 Non-binary Gender change
4 2 1 Female Female
5 2 2 Female Female
6 3 1 Male Male
7 4 1 Non-binary Non-binary
8 4 2 NA Non-binary
9 5 1 Female Female
10 5 2 NA Female
11 5 3 NA Female
12 6 1 Male Gender change
13 6 2 NA Gender change
14 6 3 Female Gender change
数据集包含大量缺失数据,因此重要的是,如果其他时间点的性别一致,则某个时间点的 NA 不会被编码为“性别变化”。
提前致谢!
我曾尝试使用数字版本的性别并遵循此处的建议,但我收到一个错误消息,即我的矢量内存已耗尽(我有超过 6,000 名参与者,大多数参与者捕获了 2-3 个时间点)。 使用长格式数据计算相对于基线的变化