2016-12-14 60 views
-1

我遇到子集问题。当我将数据集分组时,结果子集中的几列填充0,这些列的变量类已更改为未知。这与某些子集一致。受影响的列变化受影响的子集列值在子集化时被损坏

之间 我不明白为什么会这样。我所做的只是一个简单的子集命令。为什么R会丢失4个整列的数字数据并用废话代替它。

有问题的块的代码是这样简单的命令这里:

table.al = subset(bamboo_compounds,bamboo_compounds$CClass=="aldehyde") 

的原始数据集看起来像这样:

Screenshot

所得子集是这样的:

Screenshot

这四列应填写数值数据。

我从字面上做什么比其他负载在.csv文件,然后使该数据的一个子集。请,有人可以给我一些想法,可能会导致这种情况,我怎么能避免它?

+0

调用'sapply(table.a1,mode)'。它在我看来是数字。 –

+0

请求帮助时,请提供[可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。数据图片没有帮助。另外,不需要在子集中使用'$'子集(bamboo_compounds,CClass ==“aldehyde”)' – MrFlick

回答

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" 

我一直没能找到这事,“x列:未知”在RStudio浏览器标签(这是无可否认的混淆);可能值得在RStudio论坛上询问这个问题?