gpt4 book ai didi

r - 将列类型转换为数值时更改值

转载 作者:行者123 更新时间:2023-12-03 11:08:46 25 4
gpt4 key购买 nike

我有一个数据文件,格式从上面开始。
我将其加载到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


有人知道为什么会这样吗?

最佳答案

看来您的第二列是一个因素。您需要在as.character之前使用as.numeric。这是因为因子在内部以整数形式存储在表格中,以提供因子级别标签。仅使用as.numeric只会给出内部整数代码。由于这些功能是矢量化的,因此无需使用sapply

data[,2] <- as.numeric(as.character(data[,2]))


由于某些条目中包含一些非数字字符,因此该列可能是一个因素。任何此类条目都会在适当的警告下转换为 NA,但是您可能希望在原始数据中进行调查。

附带说明一下,对于变量名, data是较差的(尽管不是无效的)选择,因为存在相同名称的基函数。

关于r - 将列类型转换为数值时更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6328771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com