R中矩阵但行数相同中的值消失

问题描述

我的文件中发生了不可思议的异常。一些值正在消失,但行数却相同。某些值仍在矩阵中,所以我不明白。

# Data : meps >> https://github.com/JMcrocs/MEPVote/raw/master/meps.rds

> str(meps)

'data.frame':   784 obs. of  2338 variables:
$ mepid: num  197701 197533 197521 187917 124986 ...
$ EPG  : chr  "GUE.NGL" "GUE.NGL" "GUE.NGL" "GUE.NGL" ...

> mepsMatrix <- as.matrix(meps)
> str(mepsMatrix)

chr [1:784,1:2338] "197701" "197533" "197521" "187917" "124986" "197529" "197468" " 96706" " 88715" "197416" ...
 - attr(*,"dimnames")=List of 2
  ..$ : chr [1:784] "197701" "197533" "197521" "187917" ...
  ..$ : chr [1:2338] "mepid" "EPG" "1" "2" ...

> nrow(meps)
[1] 784
> nrow(mepsMatrix)
[1] 784
> 28229 %in% meps[,'mepid']
[1] TRUE
> 28229 %in% mepsMatrix[,'mepid']
[1] FALSE

最奇怪的部分是我可以使用RStudio查看器找到它。

有人可以帮我吗?我将不胜感激!

解决方法

看看这个最小的例子:

df <- data.frame(a = c(2,20),b = c("a","b"))
m <- as.matrix(df)

2 %in% df[,"a"]
#> TRUE
2 %in% m[,"a"]
#> FALSE
" 2" %in% m[,"a"]
#> TRUE
2 %in% trimws(m[,"a"])
#> TRUE

m
#>      a    b  
#> [1,] " 2" "a"
#> [2,] "20" "b"

显然,as.matrix会在转换为字符时强制执行相同的填充以保持相同的字符串长度。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...