【发布时间】:2011-06-13 09:39:32
【问题描述】:
我有一个上述格式的数据文件。
我将它加载到 R 中,并尝试使用 dist 列中的值绘制直方图,但出现错误“x 必须是数字”。因此我尝试更改格式。
> head(data)
V1 V2
1 type gene_dist
2 A 64667
3 A 76486
4 A 97416
5 A 30876
6 A 88018
> summary(data)
V1 V2
A : 67 100 : 1
B :122 100906 : 1
type: 1 102349 : 1
1033 : 1
10544 : 1
10745 : 1
(Other):184
我尝试使用sapply 设置列的格式,但值已更改:
> data[,2]<-sapply(data[,2],as.numeric)
> head(data)
V1 V2
1 type 190
2 A 146
3 A 166
4 A 189
summary(data)
V1 V2
A : 67 Min. : 1.00
B :122 1st Qu.: 48.25
type: 1 Median : 95.50
Mean : 95.50
3rd Qu.:142.75
Max. :190.00
有人知道为什么会这样吗?
【问题讨论】:
-
您能否粘贴
dput(data)的输出,以便我们重现您的结果。我的怀疑是您将factor直接转换为numeric,这导致了问题。尝试用function(x) as.character(as.numeric(x))替换它,看看是否可行 -
@ Ramnath - 用 as.numeric(as.character(x)) 解决的问题
-
看起来 R 将您的列分类为因素,因为您将标题作为行条目读取。在您的
read.table()调用中设置header = T应该可以解决此问题。 -
@ricardh - 我从文本文件中删除了列并手动添加它们,可能不是最优雅的方式......但它有效。 colnames(chip_data)
标签: r