【发布时间】:2013-11-11 20:45:42
【问题描述】:
我有以下数据框:
Day A1 A2 B1 B2 C1 C2
Mon 1 0 0 1 0 1
Tue 1 0 1 0 0 1
Wed 0 1 1 0 1 0
Thu 0 1 0 1 1 0
df <- data.frame(A1=c(1,1,0,0),A2=c(0,0,1,1),B1=c(0,1,1,0),B2=c(1,0,0,1),C1=c(0,0,1,1),C2=c(1,1,0,0), row.names=c('Mon','Tue','Wed','Thu'))
我想将 X1=1 和 X2=0 的日期作为输出,按字母分类。例如,对于字母 A,Mon 和 Tue 匹配标准 A1=1 和 A2=0。
这样的输出是:
列表:
$A
Mon
Tue
$B
Tue
Wed
$C
Wed
Thu
或数据框:
Lett Day
A Mon
A Tue
B Tue
B Wed
C Wed
C Thu
我尝试了以下操作:
对于 A:
A <- df$A1 == 1 & df$A2 == 0
我会得到一个逻辑向量,例如:
T
T
F
F
然后将它们与初始db的天数匹配:
A <- cbind(db[1], A)
并过滤“TRUE”值以获得输出
A
Mon
Tue
我可以对每个字母都这样做,但脚本会太长,问题是我可以有任意数量的字母(A、B..Z)
【问题讨论】:
-
你能说清楚X1和X2是什么吗?
-
@Metrics 很确定
X是通配符*的每个字母:A、B、C... -
没错,X = {A, B, .. Z)