我用我的原始数据发布了一个问题但是它太多了,所以我将尝试一种更简单的方法。
我有一个矩阵,[80,190]。我的一行是Wins / Lossses。我想把我的矩阵子集成两个矩阵,一个只有胜利,一个只有损失。
我的数据看起来像这样
a <- c(1, 2, 3, 4, 5)
b <- c("W", "L", "W", "W", "L")
c <- c(2, 3, 4, 5, 6)
newmat <- rbind(a, b, c)
我尝试使用子集
subset(newmat, newmat[2, ] == "W")
返回此错误,
x[subset & !is.na(subset), vars, drop = drop]
:(下标)逻辑下标中的错误太长
答案 0 :(得分:2)
试试这个:
newmat <- t(newmat)
lapply(split(data.frame(newmat), newmat[,"b"]), t)
$L
2 5
a "2" "5"
b "L" "L"
c "3" "6"
$W
1 3 4
a "1" "3" "4"
b "W" "W" "W"
c "2" "4" "5"
答案 1 :(得分:0)
您可以尝试这样的事情:
winMatrix <- newmat[, which(newmat['b', ] == 'W')]
lossMatrix <- newmat[, which(newmat['b', ] == 'L')]