在一个文件(1000列,2000行)中,每列都有一个旁边的另一列。类似的东西:
[,1] [,2] [,3] [,4] [,5] [,6]
3 3 4 4 4 6
6 5 2 2 5 1
9 1 3 5 4 1
2 5 6 4 8 5
6 1 5 2 3 1
我想删除那些相应值为1的值 结果:
[,1] [,3] [,5]
3 4 4
6 2 8
2 3
6
5
答案 0 :(得分:0)
为了回应@shellter所说的话,包括你在问题中尝试过的内容既有帮助又有礼貌。
以下是使用split
和mapply
完成此操作的简洁方法。
d <- read.table(text='3 3 4 4 4 6
6 5 2 2 5 1
9 1 3 5 4 1
2 5 6 4 8 5
6 1 5 2 3 1', header=FALSE)
cols <- split(as.list(d), rep(1:2, length.out=length(d)))
mapply(function(col1, col2) col1[col2 != 1],
cols[[1]], cols[[2]], SIMPLIFY=FALSE)
# $V1
# [1] 3 6 2
#
# $V3
# [1] 4 2 3 6 5
#
# $V5
# [1] 4 8