您可以concat.split
从我的“splitstackshape”包中使用更方便的方式来做您想做的事情。假设您data.frame
的名为“mydf”并且第一列名为“V1”,您可以执行以下操作:
> library(splitstackshape)
> concat.split(mydf, "V1", sep = ".", drop = TRUE)
V2 V1_1 V1_2 V1_3
1 74 1880 1 1
2 74 1881 1 1
3 75 1882 1 1
4 79 1883 1 1
5 111 1884 1 1
6 145 1885 1 1
这里,“mydf”定义为:
mydf <- structure(list(V1 = c("1880.1.1", "1881.1.1", "1882.1.1", "1883.1.1",
"1884.1.1", "1885.1.1"), V2 = c(74L, 74L, 75L, 79L, 111L, 145L)),
.Names = c("V1", "V2"), class = "data.frame", row.names = c(NA, -6L))
基本 R 中的等价物是使用如下内容:
> cbind(read.table(text = as.character(mydf$V1), sep = "."), mydf[-1])
V1 V2 V3 V2
1 1880 1 1 74
2 1881 1 1 74
3 1882 1 1 75
4 1883 1 1 79
5 1884 1 1 111
6 1885 1 1 145