R 将矩阵转换为行/数据对
我有一个事务数据表,每个单元格中都有项目编号。对于每个未丢失的条目,我想输出一个R 将矩阵转换为行/数据对,r,R,我有一个事务数据表,每个单元格中都有项目编号。对于每个未丢失的条目,我想输出一个(ID,ITEM)对,其中ID是行号,ITEM是数据。例如,考虑下面的输入表: (dat <- matrix(c(25, 39, 35, 39, 15, 26, 7, 227, 52, 120, 249, 422, 229, 104, 185, 390, 164, 124, 674, 449, 262, 143, 214, NA, 240, 205, 712, 704, 283, 320, 350, NA, 2
(ID,ITEM)
对,其中ID
是行号,ITEM
是数据。例如,考虑下面的输入表:
(dat <- matrix(c(25, 39, 35, 39, 15, 26, 7, 227, 52, 120, 249, 422, 229, 104, 185, 390, 164, 124, 674, 449, 262, 143, 214, NA, 240, 205, 712, 704, 283, 320, 350, NA, 274, 401, 733, 825, 294, 569, 529, NA, 328, 581, 759, 857, 352, 620, 658, NA, 368, 704, 854, 895, 381, 798, 682, NA, 448, 814, 950, 937, 708, NA, 782, NA, 538, 825, NA, 954, 738, NA, 809, NA, 561, 834, NA, 964, 766, NA, 849, NA), nrow=8))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 25 52 164 240 274 328 368 448 538 561
# [2,] 39 120 124 205 401 581 704 814 825 834
# [3,] 35 249 674 712 733 759 854 950 NA NA
# [4,] 39 422 449 704 825 857 895 937 954 964
# [5,] 15 229 262 283 294 352 381 708 738 766
# [6,] 26 104 143 320 569 620 798 NA NA NA
# [7,] 7 185 214 350 529 658 682 782 809 849
# [8,] 227 390 NA NA NA NA NA NA NA NA
我希望每一行都以这种方式进行转换。您可以生成一个包含所有对(包括缺少项目编号的对)的表,然后使用
complete。cases
将限制为仅包含非缺少数据的对:
out <- data.frame(ID=c(row(dat)), ITEM=c(dat))
out <- out[complete.cases(out),]
head(out)
# ID ITEM
# 1 1 25
# 2 2 39
# 3 3 35
# 4 4 39
# 5 5 15
# 6 6 26
out您可以生成一个包含所有对(包括缺少项目编号的对)的表,然后使用complete。cases
将数据限制为只有不缺少数据的对:
out <- data.frame(ID=c(row(dat)), ITEM=c(dat))
out <- out[complete.cases(out),]
head(out)
# ID ITEM
# 1 1 25
# 2 2 39
# 3 3 35
# 4 4 39
# 5 5 15
# 6 6 26
out请勿发布数据的图片。请阅读,不要张贴您的数据图片。请阅读,然后