【发布时间】:2018-06-20 16:53:38
【问题描述】:
假设您有以下简单的数据框:
Input <- c("X0_1-2 + X1_1-2","X0_1-2 + X1_1-2","X0_1-3 + X1_1-3","X0_3-2 + X1_3-2","X0_3-1 + X1_3-1","X0_2-1 + X1_2-1","X0_2-3 + X1_2-3","X0_13-1 + X1_13-1")
State1 <- c("1-3","1-3","1-2","3-1","3-2","2-1","2-1","13-3")
State2 <- c("1-2","1-2","1-3","3-2","3-1","2-3","2-3","13-1")
DataFrame <- cbind(Input,State1,State2)
DataFrame <- as.data.frame(DataFrame)
产量
Input State1 State2
1 X0_1-2 + X1_1-2 1-3 1-2
2 X0_1-2 + X1_1-2 1-3 1-2
3 X0_1-3 + X1_1-3 1-2 1-3
4 X0_3-2 + X1_3-2 3-1 3-2
5 X0_3-1 + X1_3-1 3-2 3-1
6 X0_2-1 + X1_2-1 2-1 2-3
7 X0_2-3 + X1_2-3 2-1 2-3
8 X0_13-1 + X1_13-1 13-3 13-1
我试图想出一种聪明的方法来添加一个与“输入”列相等的额外列,但要使“_”后面的值 是 State1 或 State2 的那些,根据它与 Input 中相应的子字符串不同,即在这种情况下,期望的结果是
Input State1 State2 Outcome
1 X0_1-2 + X1_1-2 1-3 1-2 X0_1-3 + X1_1-3
2 X0_1-2 + X1_1-2 1-3 1-2 X0_1-3 + X1_1-3
3 X0_1-3 + X1_1-3 1-2 1-3 X0_1-2 + X1_1-2
4 X0_3-2 + X1_3-2 3-1 3-2 X0_3-1 + X1_3-1
5 X0_3-1 + X1_3-1 3-2 3-1 X0_3-2 + X1_3-2
6 X0_2-1 + X1_2-1 2-1 2-3 X0_2-3 + X1_2-3
7 X0_2-3 + X1_2-3 2-1 2-3 X0_2-1 + X1_2-1
8 X0_13-1 + X1_13-1 13-3 13-1 X0_13-3 + X1_13-3
但到目前为止一直没有成功。
这个想法是用 State1 或 State2 的值替换输入字段中 _ 之后的任何内容,在总和的两侧,以不同者为准。
任何想法/意见将不胜感激。 谢谢!
【问题讨论】:
标签: r dataframe replace substring