查找并合并上面一行的字符串

时间:2012-04-26 14:58:20

标签: r dataframe

我有一个数据框,只有一列,我想通过只选择某些行将其变为两列,这里......让我告诉你

我想离开这个

       V1   
1    one
2    two
3    &&three
4    four
5    &&five
6    six

到这个

     V1      V2
1    one     NA
2    two     three
3    four    five
4    six     NA

所以那些有&&的人被放在第二列的第二列中(希望这是有道理的)。我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:4)

这是我的方法:

读入数据:

dat <- read.table(text="       V1   
1    one
2    two
3    &&three
4    four
5    &&five
6    six", head=T, stringsAsFactors = FALSE)

重塑:

j <- grep("&&", dat$V1)                                 #find && rows
l <- j-1                                                #find rows above && rows
dat$V2 <- rep(NA, nrow(dat))                            #create NA vector
dat$V2[l] <- gsub("&&", "", dat[grep("&&", dat$V1), 1]) #see what it does :)
dat2 <- dat[-j, ]                                       #get rid of the && rows
rownames(dat2) <- 1:nrow(dat2)                          #rename rows

哪个收益率:

    V1    V2
1  one  <NA>
2  two three
3 four  five
4  six  <NA>