R 如何在每列的每个字母/元素后添加分隔符

R 如何在每列的每个字母/元素后添加分隔符,r,R,我有一个名为mydf的数据帧。我想在每列中的每个元素后面添加一个/,并得到结果 mydf 结果 rowname val1 val2 val3 1 0/0 1/0/0 1/1/1 2 0/1 1/1 1/1 3 0/0 0/1 0/1 只需在每一列上应用以下逻辑即可 gsub("(.)(?=.)", "\\1/", x, per

我有一个名为
mydf
的数据帧。我想在每列中的每个元素后面添加一个
/
,并得到结果

mydf

结果

rowname        val1      val2    val3
    1             0/0    1/0/0    1/1/1
    2             0/1    1/1      1/1
    3             0/0    0/1      0/1

只需在每一列上应用以下逻辑即可

gsub("(.)(?=.)", "\\1/", x, perl=TRUE)

只需在每列上应用以下逻辑即可

gsub("(.)(?=.)", "\\1/", x, perl=TRUE)

我们可以使用
lappy
循环“val”列,并使用
gsub
使用regex查找模式,并替换为
/

mydf[-1] <- lapply(mydf[-1], function(x) 
           gsub('(?<=\\d)(?=\\d)', '/', x, perl=TRUE))
mydf
#   rowname val1  val2  val3
# 1       1  0/0 1/0/0 1/1/1
# 2       2  0/1   1/1   1/1
# 3       3  0/0   0/1   0/1

mydf[-1]我们可以使用
lappy
循环“val”列,并使用
gsub
使用regex查找模式,并替换为
/

mydf[-1] <- lapply(mydf[-1], function(x) 
           gsub('(?<=\\d)(?=\\d)', '/', x, perl=TRUE))
mydf
#   rowname val1  val2  val3
# 1       1  0/0 1/0/0 1/1/1
# 2       2  0/1   1/1   1/1
# 3       3  0/0   0/1   0/1

mydf[-1]谢谢,但是为什么我要以列表的形式获取它?@MAPK我将以
data.frame
的形式获取输出,并使用我使用的数据集更新。谢谢,但是为什么我要以列表的形式获取它呢?@MAPK我将以
data.frame
的形式获取输出,并使用我使用的数据集更新。