R 如果。。。还可以使用数组和矩阵吗?
两个问题:第一个问题是它只使用第一个元素,但我想我可以通过使用R 如果。。。还可以使用数组和矩阵吗?,r,R,两个问题:第一个问题是它只使用第一个元素,但我想我可以通过使用for()循环来解决它;第二个是它返回 aa <- seq(1, 10, 1) bb <- a * runif(n = 10, min = 0, max = 2) * 1000 cc <- cbind(aa, bb) if(aa / bb - 1 > .1) { cc } else { cc * 10 } 谢谢,函数ifelse()同样乐意接受向量和矩阵。稍微修改您的示例: Error: u
for()
循环来解决它;第二个是它返回
aa <- seq(1, 10, 1)
bb <- a * runif(n = 10, min = 0, max = 2) * 1000
cc <- cbind(aa, bb)
if(aa / bb - 1 > .1) {
cc
}
else {
cc * 10
}
谢谢,函数ifelse()
同样乐意接受向量和矩阵。稍微修改您的示例:
Error: unexpected 'else' in "else"
这样做的原因是数组和矩阵实际上是向量,带有一些额外的属性,这些属性定义了行和列的数量
关于
ifelse
的要点是,您的输入和输出应该具有相同数量的元素。如果您想尝试以下操作:
ifelse(cc > 1000, -cc, cc * 10)
aa bb
[1,] 10 2006.2160
[2,] 20 -3636.6234
[3,] 30 455.8483
[4,] 40 -4939.6886
[5,] 50 -3519.1552
[6,] 60 -1359.0747
[7,] 70 -2267.0220
[8,] 80 -9232.1221
[9,] 90 -5942.5760
[10,] 100 -19439.4255
sel.1
抄送[sel],尝试将else
与if
的结束}
放在同一行。另外,在bb
中,您的意思是aa*runif…
?当使用if
语句获得缺少的值,其中需要TRUE/FALSE
?如果
是只接受单个标量(即一个元素)的不同函数,则@user1611518是什么意思作为输入。你知道有没有办法处理数组和不匹配的维度吗?@user1611518我不明白你的意思。你能告诉我为了获得if
命令的帮助,我必须输入什么吗<代码>?如果不接受
。那么您建议数组索引可以替换为如果语句。。。我必须试一试,如果它真的有效,我会让你知道:)
ifelse(cc > 1000, -cc, cc * 10)
aa bb
[1,] 10 2006.2160
[2,] 20 -3636.6234
[3,] 30 455.8483
[4,] 40 -4939.6886
[5,] 50 -3519.1552
[6,] 60 -1359.0747
[7,] 70 -2267.0220
[8,] 80 -9232.1221
[9,] 90 -5942.5760
[10,] 100 -19439.4255
sel <- aa / bb - 1 > .1
cc[sel, ] <- 10 * cc[sel,]