我搜了又搜,找到了类似的东西,但没有什么是对的。希望这个问题没有得到解答。
假设我有一个包含 Y、N 的列,有时还有额外的信息
df<-data.frame(Names=c("Patient1","patient2","Patient3","Patient4","patient5"),Surgery=c("Y","N","Y-this kind of surgery","See note","Y"))
我正在尝试将 Y 或 N 分离到一列中,并将该列中的所有其他内容分离到另一列中。
我试过了
df%>%separate('Surgery',c("Surgery","Notes"), sep=" ")
最后一栏有“see”,下一栏有“notes”
df%>%separate('Surgery',c("Surgery","Notes"), sep = '^Y|^N')
越来越奇怪了
df%>%separate('Surgery',c("Surgery","Notes), sep= "^[YN]?")
正确拆分音符,删除 Y 和 N。
有人知道怎么分开吗?我正在寻找的结果在手术列中只有 Y 或 N,其他任何内容都被推到不同的列。
请您参考如下方法:
我们可以使用 extract
from tidyr
library(tidyr)
library(dplyr)
df %>%
extract(Surgery, into = c("Surgery", "Notes"), "^([YN]*)[[:punct:]]*(.*)")
# Names Surgery Notes
#1 Patient1 Y
#2 patient2 N
#3 Patient3 Y this kind of surgery
#4 Patient4 See note
#5 patient5 Y