【发布时间】:2014-05-24 09:24:35
【问题描述】:
假设我有 3 个向量(10 个字符串):
X <- c(1,1,0,1,0, 1,1, 0, NA,NA)
H <- c(0,0,1,0,NA,1,NA,1, 1, 1 )
I <- c(0,0,0,0,0, 1,NA,NA,NA,1 )
Data.frame Y 包含 10 列和 6 行:
1 2 3 4 5 6 7 8 9 10
0 1 0 0 1 1 1 0 1 0
1 1 1 0 1 0 1 0 0 0
0 0 0 0 1 0 0 1 0 1
1 0 1 1 0 1 1 1 0 0
0 0 0 0 0 0 1 0 0 0
1 1 0 1 0 0 0 0 1 1
我想使用向量 X, H en I 在 data.frame Y 中进行列选择,使用向量中的“1”和“0”作为选择标准。 因此,使用“1”作为选择标准的向量 X 的结果应该是:
X <- c(1,1,0,1,0, 1,1, 0, NA,NA)
1 2 4 6 7
0 1 0 1 1
1 1 0 0 1
0 0 0 0 0
1 0 1 1 1
0 0 0 0 1
1 1 1 0 0
对于使用“1”作为选择标准的向量 H:
H <- c(0,0,1,0,NA,1,NA,1, 1, 1 )
3 6 8 9 10
0 1 0 1 0
1 0 0 0 0
0 0 1 0 1
1 1 1 0 0
0 0 0 0 0
0 0 0 1 1
对于向量 I,使用“1”作为选择标准:
I <- c(0,0,0,0,0, 1,NA,NA,NA,1 )
6 10
1 0
0 0
0 1
1 0
0 0
0 1
为了方便和速度,我想使用循环。可能是这样的:
all.ones <- lapply[,function(x) x %in% 1]
在结果 (all.ones) 中,每个向量的结果应保持独立。例如:
X 1,2,4,6,7
H 3,6,8,9,10
I 6,10
【问题讨论】:
标签: r loops vector dataframe identity-column