我正在尝试将第一列中的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)
答案 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
您可以使用transform
和paste0
执行以下操作
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