我遇到子集问题。当我对数据集进行子集化时,生成的子集中的几列用0' s填充,这些列的变量类已更改为unknown。这与某些子集一致。受影响的列在受影响的子集之间有所不同
我不明白为什么会这样。我所做的只是一个简单的子集命令。为什么R会丢失4列整数数据并用无意义替换它。
令人讨厌的代码就是这个简单的命令:
table.al = subset(bamboo_compounds,bamboo_compounds$CClass=="aldehyde")
原始数据集如下所示:
结果子集如下所示:
这四列应填充数值数据。
除了加载.csv
文件然后创建该数据的子集之外,我几乎没有做任何其他事情。请问,有人可以告诉我可能导致这种情况以及如何避免这种情况吗?
答案 0 :(得分:1)
您确定您的数据确实已损坏吗?我们在子集中包含的顶视图(整个数据集)中可以看到的唯一一行是第15行:读取
unknown aldehyde,aldehyde,yes,NA,0.00000,0.00000,0.00000,...
下方视图中显示的是
unknown aldehyde,aldehyde,yes,NA,0.00000,0.00000,0,0,...
也就是说,我能看到的唯一的事物是最后两列的格式(这可能是因为子集中这些列的所有值都是零,所以没有必要打印所有小数位。)
对于“未知列类型”的事情,我认为这只是RStudio的奇怪之处。当我手动输入此数据集时
d <- read.csv(text=
'"unknown aldehyde","aldehyde","yes",NA,0.0000,0.0000,0,0',
header=FALSE)
并在RStudio中查看它我在最后四列看到了那些“未知”标签。但是,当我问R这些列有哪个类时,它们是数字(或整数)。
sapply(d,class)
V1 V2 V3 V4 V5 V6 V7
"factor" "factor" "factor" "logical" "numeric" "numeric" "integer"
V8
"integer"
我无法在RStudio查看器中找到关于这个“column x:unknown”标签的任何内容(这无疑令人困惑);可能值得在RStudio论坛上询问这个问题吗?