将括号添加到数据框中的字符串
Add brackets to string in data frame
我有一个名为 df 的数据框:
ColumnA ColumnB
String1 A
String2 A
String3 B
String4 A
... ...
ColumnA 中的每个字符串都有不同的长度。如果同一行中的 ColumnB == A 中的值,我想将 ColumnA 中的值放在括号中。如果 ColumnB == B 中的值我想添加方括号。所以它看起来像:
ColumnA ColumnB
(String1) A
(String2) A
[String3] B
(String4) A
... ...
实现该目标的最佳方法是什么?
您可以使用ifelse
df1$ColumnA <- with(df1, ifelse(ColumnB == "A", paste0("(", ColumnA, ")"),
paste0("[", ColumnA, "]")))
> df1$ColumnA
#[1] "(String1)" "(String2)" "[String3]" "(String4)"
或者如果ColumnB
中有A
和B
以外的值,可以使用多个ifelse
df1$ColumnA <- with(df1, ifelse(ColumnB == "A", paste0("(", ColumnA, ")"),
ifelse(ColumnB == "B", paste0("[", ColumnA, "]"), ColumnA)))
> df1$ColumnA
#[1] "(String1)" "(String2)" "[String3]" "(String4)"
我有一个名为 df 的数据框:
ColumnA ColumnB
String1 A
String2 A
String3 B
String4 A
... ...
ColumnA 中的每个字符串都有不同的长度。如果同一行中的 ColumnB == A 中的值,我想将 ColumnA 中的值放在括号中。如果 ColumnB == B 中的值我想添加方括号。所以它看起来像:
ColumnA ColumnB
(String1) A
(String2) A
[String3] B
(String4) A
... ...
实现该目标的最佳方法是什么?
您可以使用ifelse
df1$ColumnA <- with(df1, ifelse(ColumnB == "A", paste0("(", ColumnA, ")"),
paste0("[", ColumnA, "]")))
> df1$ColumnA
#[1] "(String1)" "(String2)" "[String3]" "(String4)"
或者如果ColumnB
中有A
和B
以外的值,可以使用多个ifelse
df1$ColumnA <- with(df1, ifelse(ColumnB == "A", paste0("(", ColumnA, ")"),
ifelse(ColumnB == "B", paste0("[", ColumnA, "]"), ColumnA)))
> df1$ColumnA
#[1] "(String1)" "(String2)" "[String3]" "(String4)"