如何将一列中的数字合并到第二列中以创建唯一的数值

时间:2016-10-13 03:02:44

标签: r matrix merge rscript

我正在尝试将第一列中的ID与第二列中的数字合并,以创建唯一ID。这是我从

开始的
1002   1    2
1002   2    0
1002   3    0
1003   1    1
1003   4    0
1003   2    1
1004   3    0
  

这是我正在努力实现的目标

1002   1002.1    2
1002   1002.2    0
1002   1002.3    0
1003   1003.1    1
1003   1003.4    0
1003   1003.2    1
1004   1004.3    0

这是我的尝试

data = matrix(scan("file.txt", what = "", sep = ""), ncol = 3, byrow = T)
data = matrix(paste(data[,1], data[,2], sep = "."), ncol = 1, byrow = T)

2 个答案:

答案 0 :(得分:0)

鉴于以下数据

df <- data.frame(
    x = c(1002, 1002, 1002, 1003, 1003, 1003, 1004),
    y = c(1, 2, 3, 1, 4, 2, 3),
    z = c(2, 0, 0, 1, 0, 1, 0)
)
print(df)

##      x y z
## 1 1002 1 2
## 2 1002 2 0
## 3 1002 3 0
## 4 1003 1 1
## 5 1003 4 0
## 6 1003 2 1
## 7 1004 3 0

您可以使用transformpaste0执行以下操作

df <- transform(df, y = paste0(x, ".",y))
print(df)
##      x      y z
## 1 1002 1002.1 2
## 2 1002 1002.2 0
## 3 1002 1002.3 0
## 4 1003 1003.1 1
## 5 1003 1003.4 0
## 6 1003 1003.2 1
## 7 1004 1004.3 0

答案 1 :(得分:0)

简单地尝试一下(假设数据帧df中有3列):

cbind.data.frame(ID=paste(df[,1], df[,2], sep='.'), Val=df[,3])

      ID Val
1 1002.1   2
2 1002.2   0
3 1002.3   0
4 1003.1   1
5 1003.4   0
6 1003.2   1
7 1004.3   0
相关问题