Add (insert) a column between two columns in a data.frame

前端 未结 17 1595
耶瑟儿~
耶瑟儿~ 2020-11-28 02:41

I have a data frame that has columns a, b, and c. I\'d like to add a new column d between b and c.

I know I could just add d at the end by using cbind but h

17条回答
  •  南方客
    南方客 (楼主)
    2020-11-28 03:27

    `

    data1 <- data.frame(col1=1:4, col2=5:8, col3=9:12)
    row.names(data1) <- c("row1","row2","row3","row4")
    data1
    data2 <- data.frame(col1=21:24, col2=25:28, col3=29:32)
    row.names(data2) <- c("row1","row2","row3","row4")
    data2
    insertPosition = 2
    leftBlock <- unlist(data1[,1:(insertPosition-1)])
    insertBlock <- unlist(data2[,1:length(data2[1,])])
    rightBlock <- unlist(data1[,insertPosition:length(data1[1,])])
    newData <- matrix(c(leftBlock, insertBlock, rightBlock), nrow=length(data1[,1]), byrow=FALSE)
    newData
    

    `

提交回复
热议问题