r - R中需要真假的缺失值
问题描述
我有一些 R 代码,我需要将甚至不在矩阵中的元素乘以两倍
set.seed(75)
M <- matrix(sample(30, replace=T), nrow=5, ncol=5)
Fun4 <- function(M){
for (i in 1:nrow(M)){
for (j in 1:ncol(M)){
if(M[i][j]%%2!=0){
M[i][j] <- 2*M[i][j]
}
}
}
Res <- Fun4(M)
print(Res)
在具有随机数的矩阵中,我们只想将奇数乘以 2,然后打印我们的新矩阵
运行代码时,我将错误设置为:
if(M[i][j]%%2!=0){: 需要 True / False 的地方缺少值
解决方案
要获取矩阵的行i
、列j
中的元素,您需要使用M[i,j]
。你写M[i][j]
,这里M[i]
给出了扁平矩阵的第 i 个元素(一个数字),当你尝试取这个数字的第 j 个元素时,对于 j>1,你得到NA
:
> M[1]
[1] 8
> M[1][1]
[1] 8
> M[1][2]
[1] NA
> M[1][2] %% 2 != 0
[1] NA
> if (M[1][2] %% 2 != 0) true
Error in if (M[1][2]%%2 != 0) true :
missing value where TRUE/FALSE needed
正如其他人指出的那样,您的函数定义也缺少一个右括号。
推荐阅读
- python - (Python) 使用 UTF-8 编码将字符串写入 CSV
- scala - write scala code for calculating distance to and from our given point
- batch-file - 如何根据存储在同名文本文件中的日期/时间重命名文件夹中的每个 JPG 文件?
- css - 响应式对象背后的可拖动文本 - WordPress
- javascript - 在没有任何声明的情况下声明变量是否正确?
- url - 为什么删除和恢复文件后本地网址会改变
- r - 用圆形数据格式化ggplot中的y轴
- python - 如何针对某些列绘制一个熊猫数据框单元格的图形
- entity-framework - Visual Studio 2017 - SQL Anywhere 12 数据提供程序
- gitlab - 以 1/minimum requests 获取所有发布在 MR 上的评论及其在其中的提交