gpt4 book ai didi

r - 基于其他列中的字符串的虚拟变量列

转载 作者:行者123 更新时间:2023-12-01 13:57:22 25 4
gpt4 key购买 nike

我有一个数据库,其中包含患者 ID 号和他们接受的治疗。我希望为每种不同的个体治疗都有一个虚拟列(即,如患者接受治疗 A、B、C、D 那样)。

这已经很简单了,因为我有 20 多种治疗方法和数千名患者,但我无法找到一种简单的方法来做到这一点。

example <- data.frame(id_number = c(0, 1, 2, 3, 4), 
treatment = c("A", "A+B+C+D", "C+B", "B+A", "C"))

我想要这样的东西:

desired_result <- data.frame(id_number = c(0, 1, 2, 3, 4), 
treatment = c("A", "A+B+C+D", "C+B", "B+A","C"),
A=c(1,1,0,1,0),
B=c(0,1,1,1,0),
C=c(0,1,1,0,1),
D=c(0,1,0,0,0))

最佳答案

基本版本:

example["A"] <- as.numeric(grepl("A", example[,"treatment"]))
example["B"] <- as.numeric(grepl("B", example[,"treatment"]))
example["C"] <- as.numeric(grepl("C", example[,"treatment"]))
example["D"] <- as.numeric(grepl("D", example[,"treatment"]))

example

id_number treatment A B C D
1 0 A 1 0 0 0
2 1 A+B+C+D 1 1 1 1
3 2 C+B 0 1 1 0
4 3 B+A 1 1 0 0
5 4 C 0 0 1 0

grepl 函数测试每行中每个模式是否存在,as.numeric 将逻辑 TRUE/FALSE 更改为 1/0

关于r - 基于其他列中的字符串的虚拟变量列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57102690/

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