我是 R 的新手,我很抱歉这是一个基本的问题。
我在 Excel 工作表中组织了数据,受试者编码为“Subject001”、“Subject 020”等,性别编码为 M/F。已经有一个单独的列,其中虚拟数字已分配给他们的性别,1 到 M 和 2 到 F.
我正在尝试用代码进行网络分析
network <- estimateNetwork(mydf, default = "EBICglasso", corMethod = "spearman")
但收到错误消息
x
must be numeric.
所以我尝试使用将字符串值更改为整数
cols.num <- c("SubjectID", "Sex")
mydf_healthy[cols.num] <- sapply(mydf_healthy[cols.num], as.numeric)
ssapply(mydf_healthy, class)
但是当我尝试运行网络分析代码时,我收到消息
qgraph::EBICglasso 用于 EBIC 模型选择 - 使用格拉索::格拉索 eigen(corMat) 中的错误:'x' 中的无限值或缺失值 此外:有 50 个或更多警告(使用 warnings() 查看前 50 个)
我看到我在 Subject 和 Sex 列中的字符串数据已经变成 NA.
有人能帮我吗?
已编辑:这是 mydf_healthy 输出的前五行和前五列
X SubjectID 性别 年龄 TestScore1
1 Sub_001 米 28 11
2 Sub_015 米 55 13
3 Sub_023 f 75 30
4 Sub_045 米 37 29
5 Sub_046 f 40 29
TestScore1 列之后的所有列仅包含不同测试分数的数值。只有 SubjectID 和 Sex 是非数字的。 X 没有任何意义,这是自动编号。我需要保留主题 ID 以了解最终网络分析指的是哪个主题。
数值的性质也不同:年龄仅代表参与者的实际年龄,但在所有后续列中,这些都是测试分数。这些需要区别对待吗?
非常感谢。