【发布时间】:2020-07-01 22:23:30
【问题描述】:
这是我的代码:
datTraits = as.matrix(Phenotype[traitRows, ]);
Col_A = as.data.frame(datTraits$Col_A);
Error in datTraits$Col_A : $ operator is invalid for atomic vectors
我正在尝试解决此错误,但找不到解决方案。感谢您的帮助!
【问题讨论】:
标签: r
这是我的代码:
datTraits = as.matrix(Phenotype[traitRows, ]);
Col_A = as.data.frame(datTraits$Col_A);
Error in datTraits$Col_A : $ operator is invalid for atomic vectors
我正在尝试解决此错误,但找不到解决方案。感谢您的帮助!
【问题讨论】:
标签: r
“datTraits”是matrix。所以$ 不起作用。我们可以使用[
datTraits[, "Col_A"])
在 OP 的代码中,如果我们使用 as.data.frame,请注意使用 $ 提取,即在 ) 之后
as.data.frame(datTraits)$Col_A
如果我们有一个包含 5 列的矩阵并且想要对前两列进行子集化
as.data.frame(datTraits[, 1:2])
如果我们只对单个列进行子集化,为避免丢失维度,请使用drop = FALSE
out <- as.data.frame(datTraits[, "Col_A", drop = FALSE])
【讨论】:
data.frame(Col_A = datTraits[, "Col_A"])
out <- as.data.frame(datTraits[, c("NAME", "Col_A"), drop = FALSE])