【发布时间】:2016-05-14 07:37:11
【问题描述】:
我有一个数据库如下:
col1 <-c("X1",";X2","X3;X4;X5","X6;X7")
[1] "X1" ";X2" "X3;X4;X5" "X6;X7"
col2 = col3 = col4 <- c("5","8","4","1")
[1] "5" "8" "1" "4"
dat <- data.frame(col1,col2,col3,col4)
dat
col1 col2 col3 col4
1 X1 5 5 5
2 ;X2 8 8 8
3 X3;X4;X5 4 4 4
4 X6;X7 1 1 1
我想删除第 1 列中的分号,如果第 1 列包含超过一个 X,它将复制新行。 此外,第 2 列和第 3 列将重复值,第 4 列将替换为值 0。我希望它会是:
dat
col1 col2 col3 col4
1 X1 5 5 5
2 X2 8 8 8
3 X3 4 4 4
4 X4 4 4 0
5 X5 4 4 0
6 X6 1 1 1
7 X7 1 1 0
【问题讨论】:
-
请不要引用数值。它将被读取为
factor/character列,具体取决于您是否指定stringsAsFactors=TRUE/FALSE
标签: r split duplicates rbind