以下是我的数据框的摘录:
MemberID Specialty Surgery Internal
1 42286978 Surgery NA NA
2 97903248 Internal NA NA
3 2759427 Internal NA NA
4 73570559 Surgery NA NA
在Surgery and Internal列下,我想用0或1替换NA,1为是,0为否。这是一个非常大的数据集,我宁愿在r中使用工具或函数来执行此操作。
下表是我希望实现的目标。
MemberID Specialty Surgery Internal
1 42286978 Surgery 1 0
2 97903248 Internal 0 1
3 2759427 Internal 0 1
4 73570559 Surgery 1 0
我非常感谢任何帮助。
答案 0 :(得分:5)
假设您的数据框名为dfrm
,您的意思是什么?
dfrm$Surgery <- ifelse(dfrm$Specialty=="Surgery", 1, 0)
dfrm$Internal <- ifelse(dfrm$Specialty=="Internal", 1, 0)
答案 1 :(得分:4)
假设这是一个名为dfrm的数据框
dfrm$Surgery <- 0 + (dfrm$Specialty=="Surgery")
dfrm$Internal <- 0 + (dfrm$Specialty=="Internal")
答案 2 :(得分:0)
我建议单独使用MemberID
和Specialty
,并使用一些ifelse
语言。
如果手术和内科相互排斥,您只需要一个新变量,因为第二个变量会给您完全相同的信息(医生是外科医生还是内科医生)。
将您的数据设为data.frame
,名为 specialty.data ,并尝试以下操作:
specialty.data$Surgery <- ifelse( specialty.data$Specialty == "Surgery", 1, 0 )
希望这有帮助!