我有一个名为mydf
的数据框。我想在每列中的每个元素后添加/
并获得结果。
是myDF
rowname val1 val2 val3
1 00 100 111
2 01 11 11
3 00 01 01
结果
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
答案 0 :(得分:3)
答案 1 :(得分:3)
我们可以使用lapply
遍历'val'列并使用gsub
使用正则表达式环绕模式,并替换为/
。
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 <- structure(list(rowname = c("1", "2", "3"),
val1 = c("00", "01",
"00"), val2 = c("100", "11", "01"), val3 = c("111", "11", "01"
)), .Names = c("rowname", "val1", "val2", "val3"),
class = "data.frame", row.names = c(NA, -3L))