在previous message(替换矩阵中的^和|符号)中,讨论了删除列表中符号的方法。
这里我想只替换一个矩阵的一列(药物列)。例如:
Patient Hospital Drug Response
111 AAA B+A Good
222 CCC B Good
333 DDD A+C Bad+relapse
采用以下格式。
Patient Hospital Drug1 Drug2 Response
111 AAA B A Good
222 CCC B NA Good
333 DDD A C Bad+relapse
使用R。
的方法是什么答案 0 :(得分:16)
像这样:
df <- data.frame(drug1 = c("B+A", "B", "A+C"))
df
df$drug2 <- lapply(strsplit(as.character(df$drug1), "\\+"), "[", 2)
df$drug1 <- lapply(strsplit(as.character(df$drug1), "\\+"), "[", 1)
df
所得
> df
drug1 drug2
1 B A
2 B NA
3 A C
>
答案 1 :(得分:1)
一种可能的方法是使用函数strsplit
。
> clm
[1] "A+B" "B" "A+C"
> strsplit(clm, "+")
[[1]]
[1] "A" "+" "B"
[[2]]
[1] "B"
[[3]]
[1] "A" "+" "C"