0

在一个文件(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
4

1 回答 1

0

为了呼应@shellter 所说的话,在问题中包含您尝试过的内容既有帮助又有礼貌。

split这是使用and完成此操作的一种紧凑方法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
于 2012-11-07T22:16:42.527 回答