在数据框中为字符串添加括号

时间:2016-08-23 10:17:11

标签: r rscript

我有这个名为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
...         ...

实现这一目标的最佳途径是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用ifelse

df1$ColumnA <- with(df1, ifelse(ColumnB == "A", paste0("(", ColumnA, ")"), 
                                                    paste0("[", ColumnA, "]")))
> df1$ColumnA

#[1] "(String1)" "(String2)" "[String3]" "(String4)"

如果A中有BColumnB以外的值,您可以使用多个ifelse

df1$ColumnA <- with(df1, ifelse(ColumnB == "A", paste0("(", ColumnA, ")"), 
                       ifelse(ColumnB == "B", paste0("[", ColumnA, "]"), ColumnA)))
> df1$ColumnA

#[1] "(String1)" "(String2)" "[String3]" "(String4)"