我有两个数据集Mtest和Ztest。我正在尝试将各个数据集中的每个值都比较为零,并使用比较的结果来创建一个具有结果的新数据集。比较应该得出三个结果之一。
Result 1: Mtest > 0 & Ztest > 0 <- "OW"
Result 2: Mtest < 0 & Ztest < 0 <- "UW"
Result 3: Mtest < 0 & Ztest > 0 | Mtest > 0 & Ztest < 0 <- "MW"
数据集1:Mtest:
A B C
-0.0136 0.0078 -0.0234
-0.0377 0.1369 -0.0387
数据集2:Ztest
A B C
-0.4283 0.4441 -0.6826
-1.888 -0.5877 -1.2024
所需的输出:
A B C
UW OW UW
UW MW UW
我的逻辑不是为B列第2行生成MW。以下是我的循环正在生成的输出示例:
A B C
UW OW UW
UW OW UW
当我运行以下循环时,它无法正常工作,并且我一直很难确定自己在做什么错。
testMatrix <- matrix(0, ncol = 3, nrow = 2)
for(i in 1:ncol(Ztest)) {
if(c(Ztest[,i], Mtest[,i]) > 0){
testMatrix[,i] <- "OW"
} else {
if((Ztest[,i] > 0 & Mtest[,i] < 0) | (Ztest[,i] < 0 & Mtest[,i] > 0)){
testMatrix[,i] <- "MW"
} else {
if(c(Ztest[,i],Mtest[,i]) < 0){
testMatrix[,i] <- "UW"
}
}
}
}
感谢您为我的失误提供的任何帮助。谢谢。
答案 0 :(得分:0)
您需要遍历行和列。现在,您总是将相同的值分配给整个列。试试:
SHOW CHARACTER SET FOR mydatabase.mytable;