is.na(x)`是一个矩阵,它的维数必须与R中的输入误差相同
我试过了 编辑is.na(x)`是一个矩阵,它的维数必须与R中的输入误差相同,r,matrix,na,R,Matrix,Na,我试过了 编辑 x也是一个列表 Error in `[<-.data.frame`(`*tmp*`, is.na(x), value = 0) : unsupported matrix index in replacement 3. stop("unsupported matrix index in replacement") 2. `[<-.data.frame`(`*tmp*`, is.na(x), value = 0) 1. `[<-`(`*tmp*`
x
也是一个列表
Error in `[<-.data.frame`(`*tmp*`, is.na(x), value = 0) : unsupported matrix index in replacement
3.
stop("unsupported matrix index in replacement")
2.
`[<-.data.frame`(`*tmp*`, is.na(x), value = 0)
1.
`[<-`(`*tmp*`, is.na(x), value = 0)
如果x是data.frame对象,则它应该工作:
str(x)
data.frame': 21448 obs. of 4 variables:
$ item : chr "v" "v" "a" "a" ...
$ E : num 126.4 126.4 51.7 51.7 51.7 ...
$ E: num 419 417.6 49 49.3 49 ...
$ c : num [1:21448, 1:3] 331.4 330.3 94.8 95.4 94.8 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr [1:3] "item" "E" "E"
- attr(*, "problems")= tibble [5,624 x 5] (S3: tbl_df/tbl/data.frame)
..$ row : int [1:5624] 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 ...
..$ col : chr [1:5624] "Sex" "Sex" "Sex" "Sex" ...
..$ expected: chr [1:5624] "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE" ...
..$ actual : chr [1:5624] "m" "m" "m" "m" ...
..$ file : chr [1:5624] "'../data/tables/k.tsv'" "'../data/tables/k.tsv'" "'../data/tables/k_13_08.tsv'" "'../data/tables/k.13_08.tsv'" ...
- attr(*, "spec")=List of 3
..$ cols :List of 26
.. ..$ diet_item_id : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ file_name : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ sample : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ time_point.label : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ time_point : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ day : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ date :List of 1
.. .. ..$ format: chr ""
.. .. ..- attr(*, "class")= chr [1:2] "collector_date" "collector"
.. ..$ St_complet : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ Time : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ Sex : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_logical" "collector"
.. ..$ P : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ item : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ item_id : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ cat : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ subcat : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ descr : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ E : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ database : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ E : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ K : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ F : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ B : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ G : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ E: list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ A : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ E : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
..$ default: list()
.. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
..$ skip : num 1
..- attr(*, "class")= chr "col_spec"
df您能提供一个reprex吗?使用模拟数据创建矩阵时,我无法重现您的错误:xstr(x)
的输出是什么?是的,我也是,就像我在问题中所说的@Janderkran很明显,这里没有标准的data.frame。
str(x)
data.frame': 21448 obs. of 4 variables:
$ item : chr "v" "v" "a" "a" ...
$ E : num 126.4 126.4 51.7 51.7 51.7 ...
$ E: num 419 417.6 49 49.3 49 ...
$ c : num [1:21448, 1:3] 331.4 330.3 94.8 95.4 94.8 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr [1:3] "item" "E" "E"
- attr(*, "problems")= tibble [5,624 x 5] (S3: tbl_df/tbl/data.frame)
..$ row : int [1:5624] 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 ...
..$ col : chr [1:5624] "Sex" "Sex" "Sex" "Sex" ...
..$ expected: chr [1:5624] "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE" "1/0/T/F/TRUE/FALSE" ...
..$ actual : chr [1:5624] "m" "m" "m" "m" ...
..$ file : chr [1:5624] "'../data/tables/k.tsv'" "'../data/tables/k.tsv'" "'../data/tables/k_13_08.tsv'" "'../data/tables/k.13_08.tsv'" ...
- attr(*, "spec")=List of 3
..$ cols :List of 26
.. ..$ diet_item_id : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ file_name : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ sample : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ time_point.label : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ time_point : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ day : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ date :List of 1
.. .. ..$ format: chr ""
.. .. ..- attr(*, "class")= chr [1:2] "collector_date" "collector"
.. ..$ St_complet : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ Time : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ Sex : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_logical" "collector"
.. ..$ P : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ item : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ item_id : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ cat : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ subcat : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ descr : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ E : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ database : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
.. ..$ E : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ K : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ F : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ B : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ G : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ E: list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ A : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
.. ..$ E : list()
.. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
..$ default: list()
.. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
..$ skip : num 1
..- attr(*, "class")= chr "col_spec"
df <- data.frame(a = c(1,2,3), b = c(4,NA,6), c = c(NA, 8, NA))
df[is.na(df)] <- 0
> df
a b c
1 1 4 0
2 2 0 8
3 3 6 0